2009-04-20 1 views
6

私は過去にウェブサイトに私の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意志状況にいるということです改行、タブ、特殊文字( "&"、 "="など)を含む可能性が非常に高いです。このコンテンツをエスケープする必要がありますか?もしそうなら、どうですか?

答えて

10

必要に応じてHttpUtility.HtmlEncode/HtmlDecodeまたはUrlEncode/UrlDecodeを使用できます。 .NET Frameworkのすべてのバージョンでサポートされてい

System.Web.HttpUtility.UrlEncode

= P具体的

、私はオーバーロードを使用しています:

+0

UrlEncodeは私が必要なものでした: http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx ありがとうございました。 –

+0

Crud。これは動作しません。私は.Net 2.0メソッドが必要です。 –

+0

これは1.0以降です:) –

3

ただ参考のために、私の問題を解決するには、していましたそれにはstring as an argumentが必要です。これをすべてのパラメータ値で実行すると、POSTに安全になります。

1

System.Webが古くなっています - 代わりにSystem.Net.WebUtilityを使用してください。

関連する問題