2009-04-20 39 views
6

Khi tôi đã tải lên nội dung từ ứng dụng C# của tôi vào một trang web trong quá khứ, tôi đã sử dụng một yêu cầu POST như vậy:C# HttpWebReqest - thoát khỏi nội dung 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(); 

Vấn đề của tôi là bây giờ tôi đang ở trong một tình huống mà this.message sẽ rất có thể chứa các dòng mới, các tab và các ký tự đặc biệt bao gồm "&" và "=". Tôi có cần phải thoát khỏi nội dung này không. Nếu vậy, làm thế nào?

Trả lời

10

Bạn có thể sử dụng HttpUtility.HtmlEncode/HtmlDecode hoặc UrlEncode/UrlDecode khi thích hợp.

+0

Yup. UrlEncode là những gì tôi cần: http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx Cảm ơn. –

+0

Crud. Điều này sẽ không hoạt động. Tôi cần một phương thức .Net 2.0. –

+0

Đó là từ 1.0 :) –

3

Chỉ cần để tham khảo, giải pháp cho vấn đề của tôi là trong:

System.Web.HttpUtility.UrlEncode

nào được hỗ trợ bởi tất cả các phiên bản của .Net framework = p

Cụ thể, tôi đang sử dụng quá tải phải mất string as an argument. Chạy điều này trên tất cả các giá trị tham số sẽ làm cho chúng an toàn cho POST.

1

System.Web đã lỗi thời - sử dụng System.Net.WebUtility thay vào đó ...

Các vấn đề liên quan