我正在使用WebClient类发布表单,它看起来像这样。
string URI = "url here";
string myParameters = string.Format("Parameter1={0}&Parameter2={1}", var1, var2);
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
wc.Headers["Content-type"] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(URI, myParameters);
哪个效果很好,但像&
这样的某些字符显然会破坏它。
如何将参数格式化为不删除但仍会使非法字符通过?
答案 0 :(得分:2)
UrlEncode
vars
string URI = "url here";
string myParameters = string.Format("Parameter1={0}&Parameter2={1}",
HttpUtility.UrlEncode(var1),
HttpUtility.UrlEncode(var2));
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
wc.Headers["Content-type"] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(URI, myParameters);
&
这将编码所有非法字符,而不只是UrlDecode
,BTW
在阅读这些内容时,在请求的另一方,您可能还需要{{1}}他们MSDN
答案 1 :(得分:-1)
他们需要进行百分比编码:
encodeURIComponent方法( '&安培;') “%90K”
例如,网址如下所示:
www.facebook.com?service_name=M%90k