2009-04-20 4 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를 적절하게 사용할 수 있습니다. 닷넷 프레임 워크의 모든 버전에서 지원

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입니다. 이 매개 변수를 모든 매개 변수 값에 대해 실행하면 안전하게 게시 할 수 있습니다.

1

System.Web는 (는) System.Net.WebUtility 대신에

관련 문제