2009-04-20 13 views
6
Geçmişte bir web sitesine benim C# uygulamasından içeriği yükledim

, ben şöyle bir POST isteği kullandım:C# HttpWebReqest - POST içeriği kaçıyor?

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

Sorunum nerede this.message olacak şimdi bir durumda olduğum büyük olasılıkla yeni satırlar, sekmeler ve "&" ve "=" gibi özel karakterler içerir. Bu içerikten kaçmalıyım. Öyleyse nasıl?

cevap

10

HttpUtility.HtmlEncode/HtmlDecode veya UrlEncode/UrlDecode'ı uygun şekilde kullanabilirsiniz. .Net framework tüm sürümleri tarafından destekleniyor

System.Web.HttpUtility.UrlEncode

= p Özellikle

, ben aşırı kullanıyorum:

+0

Yup. UrlEncode ihtiyacım olan şeydi: http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx Teşekkürler. –

+0

Crud. Bu işe yaramaz. Bir .NET 2.0 yöntemine ihtiyacım var. –

+0

Bu 1,0 beri oldu :) –

3

Sadece başvuru için, benim sorunun çözümü oldu Bu string as an argument alır. Bunu tüm parametre değerlerinde çalıştırmak, bunları POST için güvenli hale getirecektir.

1

System.Web güncel değil - kullan System.Net.WebUtility kullan