C#程序发送POST请求数据中+号丢失解决方案
2021-02-02 12:13
标签:net 建议 数据 tput 请求 end foreach parameter amp C#程序把RSA加密后的密码发送到后台总是校验失败,用wireshark抓包检查发现POST发出的密码中的+号都变成了空格。为了正确的发送数据,要用URL转码协议进行转码。 有两个方法进行URL转码 第一种是使用HttpUtility.UrlEncode(),命名空间为System.Web 不过我使用的C#版本已经不支持该写法 第二种是使用WebUtility.UrlEncode(),命名空间为System.Net 我所使用的C#版本正常使用,建议使用该函数 C#程序发送POST请求数据中+号丢失解决方案 标签:net 建议 数据 tput 请求 end foreach parameter amp 原文地址:https://www.cnblogs.com/zhaoshizi/p/11552495.html//如果需要POST数据
if (!(parameters == null || parameters.Count == 0))
{
StringBuilder buffer = new StringBuilder();
int i = 0;
foreach (string key in parameters.Keys)
{
if (i > 0)
{
//对有特殊字符的post内容进行转码
buffer.AppendFormat("&{0}={1}", key, WebUtility.UrlEncode(parameters[key]));
}
else
{
//对有特殊字符的post内容进行转码
buffer.AppendFormat("{0}={1}", key, WebUtility.UrlEncode(parameters[key]));
}
i++;
}
byte[] data = charset.GetBytes(buffer.ToString());
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
上一篇:c#模拟Http请求
下一篇:C#访问https地址实例
文章标题:C#程序发送POST请求数据中+号丢失解决方案
文章链接:http://soscw.com/index.php/essay/49955.html