C#学习教程:处理发送到RESTWeb服务的JSON字符串中的&符号的正确方法运行时.Serialization和DataContractJsonSerialization。问题是在请求中我发送了一个带有&字符的属性值。比如说,AT&T,我收到一个错误响应:InvalidJSONData。我以为转义会在库内完成,但现在我看到序列化没有触及&字符。是的,对于JSON格式,这是可行的。但这对我的POST请求来说是个问题,因为我需要将它发送到服务器,如果它包含一个符号,它将以错误响应,所以我在这里。HttpUtility.HtmlEncode在System.Web库中,所以可以使用Uri.EscapeUriString。我这样做是为了尝试,但无论如何,没有它,所有请求都可以正常工作,除了一个&符号值。编辑:HttpUtility类已移植到WindowsPhoneSDK,但编码字符串的首选方法仍然是Uri.EscapeUriString。首先想到的是涂抹并开始替换会导致服务器出现问题的特殊字符,但是,我想知道,我还应该做什么其他解决方案,它是否有效且“正确”?我应该告诉我使用//Convertthestringintoabytearray.byte[]postBytes=Encoding.UTF8.GetBytes(data);将JSON转换为byte[]并写入Stream。并且,request.ContentType="application/x-www-form-urlencoded";作为WebRequest.ContentType。那么,我是否出于某种原因搞砸了?谢谢。问题是我正在对包括密钥在内的整个请求字符串进行编码。我有一个请求data={JSON}并且我正在格式化它,但是{JSON}部分应该只被编码。stringrequestData="data="+Uri.EncodeDataString(json)//完美!愚蠢的洞进去了。您是否尝试过用&替换POST的符号?以上就是C#学习教程:处理JSON字符串中的&号并发送到RESTWeb服务的正确方法分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多加关注——本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
