2009-04-20 6 views
6

Wenn ich Inhalte von meiner C# app auf eine Website in der Vergangenheit hochgeladen habe, habe ich eine POST-Anforderung wie so verwendet:C# HttpWebReqest - Escape-POST-Inhalt?

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(); 

Mein Problem ist, dass ich jetzt in einer Situation, wo ich this.message werden sehr wahrscheinlich enthalten Zeilenumbrüche, Tabs und Sonderzeichen einschließlich "&" und "=". Muss ich diesem Inhalt entkommen? Wenn das so ist, wie?

Antwort

10

Sie können HttpUtility.HtmlEncode/HtmlDecode oder UrlEncode/UrlDecode entsprechend verwenden.

+0

Yup. UrlEncode war was ich brauchte: http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx Danke. –

+0

Crud. Dies wird nicht funktionieren. Ich brauche eine .Net 2.0-Methode. –

+0

Das war in seit 1.0 :) –

3

Gerade als Referenz war die Lösung für mein Problem in:

System.Web.HttpUtility.UrlEncode

, die von allen Versionen von .NET Framework = p

Insbesondere unterstützt wird, ich bin mit Überlastung das dauert eine string as an argument. Wenn Sie dies für alle Parameterwerte ausführen, sind sie für POST-Vorgänge sicher.

1

System.Web ist veraltet - System.Net.WebUtility stattdessen ...