使用AFNetworking请求出错提示:Error Doma

作者: hx永恒之恋 | 来源:发表于2016-08-18 09:43 被阅读4838次

AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];
[manager GET:@"http://www.baidu.com" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
NSString *result = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"%@",result);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"%@",error);
}];
在AFNetworking中 上述代码将会 输出

 Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x8ea19a0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

这是因为 AFNetworking默认把响应结果当成json来处理,(默认manager.responseSerializer = [AFJSONResponseSerializer serializer]) ,很显然,我们请求的百度首页 返回的并不是一个json文本,而是一个html网页,但是AFNetworking并不知道,它坚信请求的结果就是一个json文本!然后固执地以json的形式去解析,显然没办法把一个网页解析成一个字典或者数组,所以产生了上述错误.

然而,我们期望它能够正确地处理这个情形,而不是提示一个错误.
这时候 你必须告诉AFNetworking:别把这个网页当json来处理!
只需要在发送请求前加入:manager.responseSerializer = [AFHTTPResponseSerializer serializer]

AFHTTPSessionManager *manager =[AFHTTPSessionManager manager]; 
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
[manager GET:@"http://www.baidu.com" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) { 
       NSString *result = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]; 
       NSLog(@"%@",result); 
} failure:^(NSURLSessionDataTask *task, NSError *error) { 
       NSLog(@"%@",error); 
}];

相关文章

网友评论

  • zenRRan:没。直接用的python
  • 超_iOS:返回html 的是不是要单独封装啊?我的在json哪里加这句话直接crash了
  • zenRRan:是十六进制
  • zenRRan:按照你这样写,返回值是一对二进制,怎么办?
    超_iOS:@zenRRan 你这个16进制的搞定没
    zenRRan:@hx永恒之恋 嗯嗯。任然感谢!!!嘿嘿
    hx永恒之恋:@笑的味道 我也是刚刚接触这方面,具体的细节也不太懂,只是把自己遇到的问题解决方法贴出来,关于你说的返回值是二进制我查了查资料,你有空看一看,希望对你有帮助
    http://blog.csdn.net/wangzhen3416/article/details/49251011

本文标题: 使用AFNetworking请求出错提示:Error Doma

本文链接:https://www.haomeiwen.com/subject/ymlvsttx.html