2009-04-20 20 views
6

Cuando he subido el contenido de mi aplicación de C# a un sitio web en el pasado, he utilizado una solicitud POST de este modo:C# HttpWebReqest: ¿escapar contenido 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(); 

Mi problema es que ahora estoy en una situación en la que se this.message muy probablemente contenga nuevas líneas, pestañas y caracteres especiales, incluidos "&" y "=". ¿Necesito escapar de este contenido? ¿Si es así, cómo?

Respuesta

10

Puede usar HttpUtility.HtmlEncode/HtmlDecode o UrlEncode/UrlDecode según corresponda.

+0

Sip. UrlEncode era lo que necesitaba: http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx Gracias. –

+0

Crud. Esto no funcionará Necesito un método .Net 2.0. –

+0

Eso ha estado en 1.0 :) –

3

Sólo como referencia, la solución a mi problema fue en:

System.Web.HttpUtility.UrlEncode

que es apoyado por todas las versiones de .NET Framework = p

Específicamente, estoy usando la sobrecarga eso toma un string as an argument. Ejecutar esto en todos los valores de los parámetros los hará seguros para la POSTING.

1

System.Web no está actualizado - System.Net.WebUtility utilizar en su lugar ...

Cuestiones relacionadas