2013-04-27 111 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服务的人员。