【发布时间】:2012-12-25 07:26:22
【问题描述】:
我使用AFNetworking 请求服务器,但我得到这样的输出:
2012-12-25 15:16:47.578 SmsForNewYear[3825:c07] <3c21444f 43545950 45206874 6d6c2050 55424c49 4320222d 2f2f5733 432f2f44 54442058 48544d4c 20312e30 20547261 6e736974 696f6e61 6c2f2f45 4e222022 68747470 3a2f2f77 77772e77 332e6f72
不是json,如果我加[self setDefaultHeader:@"Accept" value:@"application/json"];
返回:
SmsForNewYear[3920:c07] getNewSms:Expected content type {(
"text/json",
"application/json",
"text/javascript"
)}, got text/html
但是我用的是浏览器,看起来是这样的
{"rs_code":"200","data":{"sms_cate_list":[{"id":"26","name":"\u559c\u5e86","likes":"0","sms_num":"1","order_id":"1","is_index":"0","update_time":"1355932115"}
是json。
另一方面,我使用asihttprequest 可以返回json。
为什么?
【问题讨论】:
-
顺便说一下,解码
NSData,它看起来像是一个HTML响应的开始(但这里还不足以看到它所说的内容)。当你NSLog[[NSString alloc] initWithData:jsonData]时,看看它是什么会很有趣,但它可能是关于 URL 错误或类似的错误消息。 -
谢谢,我发现错了,不是rest风格,我这样写 [AFSmsAPIClient sharedClient] getPath:@"sn=sms.sms.display" parameters:nil ,看起来像facebook风格,所以 sn=sms.sms.display 是 get 方法的参数
-
酷。无法根据
NSData的NSLog进行诊断。我最初(错误地)假设它可能是一个有效的 JSON 响应,但经过进一步检查,很明显服务器报告了一些错误(但您包含的NSData不足以诊断它,因为它被切断了)。不管怎样,你找到了还好。将来,如果您在NSData对象中获得服务器响应,则将其转换为NSString(如下所述)将帮助您更快地诊断问题。
标签: iphone ios json asihttprequest afnetworking