Csharp/C#教程:HttpClient PostAsync无效的post格式分享


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

(0)
上一篇 2021年12月19日
下一篇 2021年12月19日

精彩推荐