我刚开始使用restkit for ios。我有一个非常简单的json响应
{ “结果”:[ { “userid”:“5964”, “名字”:“你的名字” } ] }
这是一个有效的json(针对jsonlint测试)
但是,当我尝试将它与RKClient一起使用时,它不会将其视为json。这是我的代码
-(void) request:(RKRequest *)request didLoadResponse:(RKResponse *)response{
if([request isGET]){
if([response isJSON]){
NSLog(@"JSON Response from Server %@", [response bodyAsString] );
}else{
NSLog(@"Non JSON Response from Server %@", [response bodyAsString] );
}
}
}
它始终记录“非JSON Reponse ....”但json完全有效。当我使用RKObjectMapping时会发生同样的事情;错误将是“无法找到MIME类型text / xml的解析器。
非常感谢任何帮助。
由于
答案 0 :(得分:9)
如果由于任何原因你无法更改服务器头并将Mime类型返回到xml或json,你仍然可以添加mime类型'text / html'的映射以作为json处理。
只需添加:
[[RKParserRegistry sharedRegistry] setParserClass:[RKJSONParserJSONKit class] forMIMEType:@"text/html"];
不要忘记添加相关的头文件:
#import <RestKit/RKJSONParserJSONKit.h>
适合我。
查看https://github.com/RestKit/RestKit/wiki/Using-a-Custom-MIME-Type
答案 1 :(得分:3)
Serveur响应头应该是“application / json”,而不是“text / xml”。 ; P
答案 2 :(得分:2)
我有点傻,但是一旦我添加了
,事情就解决了header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
到服务器脚本。