如何编码字符串,以便它可以通过http发送?

时间:2013-02-27 23:14:37

标签: c# asp.net .net

我的POST请求中有这段字符串:

"signature=bI�(��0�P���h;"

现在,我想编码,因为我的WebResponse类不想发送它。我尝试使用HttpUtility.HtmlEncode(),但该方法不想合作(我的意思是字符串保持不变)。

我如何编码那些奇怪的字符,以便它将通过http?

编辑:好的nvm,我刚发现还有一个名为.UrlEncode()的方法,按预期工作,抱歉有问题!

3 个答案:

答案 0 :(得分:4)

.NET也有URL编码:http://msdn.microsoft.com/en-us/library/zttxte6w.aspx或查找HttpUtility.UrlEncode

答案 1 :(得分:2)

您可以使用HttpUtility.UrlEncode

HttpUtility.UrlEncode - 网址编码可确保所有浏览器都能正确传输网址字符串中的文字。某些浏览器可能会截断或损坏诸如问号(?),符号(&),斜杠标记(/)和空格等字符。因此,这些字符必须编码在标签或查询字符串中,其中字符串可以由浏览器在请求字符串中重新发送。

答案 2 :(得分:1)

如果您的意思是“发布为表单值”,那么这是一个相当标准的事情。为什么不让图书馆组件担心:

using (var client = new WebClient())
{
   var vals = new NameValueCollection();
   vals["signature"] = yourString;
   // other form inputs here...
   client.UploadValues(url, "post", vals);
}