HttpClient PostAsync无效的post格式
我正在尝试使用HttpClient的PostAsync登录网站; 但总是失败,当我使用WireShark跟踪连接时,我发现它错误地发布了数据
码
var content = new FormUrlEncodedContent(new[] { new KeyValuePair("value1", data1), new KeyValuePair("value2", data2), new KeyValuePair("value3", data3) });
要么
var content = new List<KeyValuePair> { new KeyValuePair("value1", data1), new KeyValuePair("value2", data2), new KeyValuePair("value3", data3) };
用法
httpClient.PostAsync(postUri, content)
期望
value1=123456&value2=123456&value3=123456
现实
//It adds strange += which makes the post fail... value1=123456&value2+=123456&value3+=123456
我知道这有效:
var values = new List>(); values.Add(new KeyValuePair("Item1", "Value1")); values.Add(new KeyValuePair("Item2", "Value2")); values.Add(new KeyValuePair("Item3", "Value3")); using (var content = new FormUrlEncodedContent(values)) { client.PostAsync(postUri, content).Result) }
修剪可能的空格的参数。 空格导致+
var content = new List> { new KeyValuePair("value1", data1.Trim()), new KeyValuePair("value2", data2.Trim()), new KeyValuePair("value3", data3.Trim()) };
在我看来,这更好看:
var variables = new Dictionary() { { "value1", value1 }, { "value2", value2 } }; var content = new FormUrlEncodedContent(variables);
并且字典可以用于在加载时检查重复值,除非您需要重复键…
上述就是C#学习教程:HttpClient PostAsync无效的post格式分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/983166.html