C#HttpWebRequest - 转发POST内容?

时间:2009-04-20 22:26:41

标签: c# httpwebrequest escaping

当我过去将我的C#应用​​程序中的内容上传到网站时,我使用了这样的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很可能包含换行符,标签和特殊字符(包括“&”)的情况和“=”。我是否需要逃避这些内容。如果是这样,怎么样?

3 个答案:

答案 0 :(得分:10)

您可以根据需要使用HttpUtility.HtmlEncode / HtmlDecode或UrlEncode / UrlDecode。

答案 1 :(得分:3)

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

System.Web.HttpUtility.UrlEncode

所有版本的.Net framework = p

都支持

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

答案 2 :(得分:1)

System.Web已过时 - 请改用System.Net.WebUtility ...