2013-04-27 33 views
0

即時通訊使用方法POST將字符串發送到REST服務。將特殊字符從c#發送到webservice時出錯

//--------------------------Method Post-------------------------- 
    public static string methodPost(string header,string url,string body) 
    { 

     var request = (HttpWebRequest)WebRequest.Create(url); 
     request.Method = "POST"; 
     if(header!=null) request.Headers.Add(header); 
     request.ContentType = "application/json"; 
     byte[] byteArray = Encoding.UTF8.GetBytes(body); 
     request.ContentLength = byteArray.Length; 

     Stream dataStream = request.GetRequestStream(); 

     dataStream.Write(byteArray, 0, byteArray.Length); 
     dataStream.Close(); 
     var response = request.GetResponse(); 

     Stream stream2 = response.GetResponseStream(); 
     StreamReader reader2 = new StreamReader(stream2); 
     String ok = reader2.ReadToEnd(); 
     return ok; 
    } 

if string body =「test send string」:success,but string body =「test send'string」:not success。 如何解決它?謝謝!

+0

如果您的Rest服務ADO Layet尚未,此更換嘗試... http://www.mikesdotnetting.com/Article/113/Preventing-SQL-Injection-in-ASP.NET – Elyor 2013-04-27 11:34:24

+1

或試試我簡單的分機:' public static class Ext { public static string AsAntiInjection(this string str) return str.Replace(「'」,「''」); } }' – Elyor 2013-04-27 11:38:01

+0

@lelyor:thank you! – 2013-04-28 16:02:44

回答

0

"test send ' string"是合法的json,但您可以嘗試"test send \' string"。如果這不起作用,您需要詢問管理Web服務的人員。