C#HttpWebReqest - 逃避POST内容?

问题描述:

当我上传的内容从我的C#应用​​程序在过去的一个网站,我用了一个POST请求,像这样:C#HttpWebReqest - 逃避POST内容?

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("http://" + this.server + "/log.php"); 
    wr.Method = "POST"; 
    wr.ContentType = "application/x-www-form-urlencoded"; 
    string paramString = "v=" + this.version + "&m=" + this.message; 
    wr.ContentLength = paramString.Length; 
    StreamWriter stOut = new StreamWriter(wr.GetRequestStream(), System.Text.Encoding.ASCII); 
    stOut.Write(paramString); 
    stOut.Close(); 

我的问题是,现在我的情况是,其中this.message会很可能包含换行符,制表符,并包括“&”和“=”特殊字符。我需要转义这些内容吗?如果是这样,怎么样?

您可以使用HttpUtility.HtmlEncode/HtmlDecode或以UrlEncode/UrlDecode适当。

+0

是的。以UrlEncode是我需要的东西: http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx 感谢。 – 2009-04-20 22:32:26

仅供参考,解决我的问题是:

System.Web.HttpUtility.UrlEncode

这是由.NET Framework版本都支持= P

具体来说,我使用过载这需要一个string as an argument。在所有参数值上运行此操作将使它们对于POSTing是安全的。

System.Web已过时 - 请使用System.Net.WebUtility来代替...