【发布时间】:2015-10-09 03:03:55
【问题描述】:
我正在使用AFNetworking 2.0。
在AFNetworking,AFHTTPRequestOperationManager 对象有一个API:
(AFHTTPRequestOperation *)POST:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
它接受 NSDictionary 作为我们希望“发布”到服务器的 JSON 有效负载的参数。在我的有效负载中,我有以下键值对:
"buttonActionParam":"/catalog/special/international-calling"
发布此有效负载服务器会返回无效的 JSON。查看服务器端的有效载荷,我意识到 AFNetworking 实际上是在发送:
"buttonActionParam":"\/catalog\/special\/international-calling".
我知道AFNetworking 库使用NSJSONSerialization 的类方法-dataWithJSONObject:,导致了这种情况。我的问题是:
问。如何解决这个问题?
【问题讨论】:
-
不确定我是否理解这个问题:您是说您正在尝试发送“buttonActionParam”:“/catalog/special/international-calling”,而这正是发送的内容AFNetworking,有什么问题?
-
编辑了我的问题。不得不放转义字符。 :)
-
来自
NSJSONSerialization的NSData与您在服务器端看到的不太一样——它在我的十六进制编辑器中显示{"buttonActionParam":"\/catalog\/special\/international-calling"}。我想知道这是否是字符编码问题 - 看起来服务器出于某种原因坚持了额外的转义 \。 -
@RichTolley 我编辑了来自 NSJSONSerialization 的内容。我正在寻找
{"buttonActionParam":"/catalog/special/international-calling"}而不是{"buttonActionParam":"\/catalog\/special\/international-calling"}
标签: ios objective-c json afnetworking-2