[置顶] iOS开发AFN3.0中json解析返回3840获取error自己解析
2017-04-06 19:19
489 查看
因为后台原因,如果请求失败,返回的error错误信息是AFN中默认json解析数据,这时会返回解析失败的3840信息,如果这时想获取自己去解析不需要返回json数据,那么就需要改变默认的解析方式,这时关键问题如下:
原来响应序列器设置为
AFHTTPResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializer];//此处返回的结果是不可改的;
需要设置为如下才可以:
AFHTTPResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions: NSJSONReadingMutableContainers];//允许返回的结果可改。
http://www.oschina.net/question/2296401_225963
http://www.fx114.net/qa-227-152024.aspx
http://www.jianshu.com/p/03bf22adaf11
原来响应序列器设置为
AFHTTPResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializer];//此处返回的结果是不可改的;
需要设置为如下才可以:
AFHTTPResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions: NSJSONReadingMutableContainers];//允许返回的结果可改。
+ (void)initialize{ manager=[AFHTTPSessionManager manager]; manager.responseSerializer.acceptableContentTypes=[manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromArray:@[@"text/plain",@"text/html",@"application/json",@"multipart/form-data"]]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingMutableContainers];//允许返回的结果可改 } + (void)GET:(NSString *)urlStr parameters:(id)parameters success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure { [manager GET:urlStr parameters:parameters progress:^(NSProgress * _Nonnull downloadProgress) { } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { success(responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { // NSError *underError = error.userInfo[@"NSUnderlyingError"]; // // NSData *data=underError.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey]; // // NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; // NSLog(@"%@",str); NSData *data = error.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey]; if (data != nil) { // id body = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"error--%@", str); //就可以获取到错误时返回的body信息。 } failure(error); }]; }如下图所示:
http://www.oschina.net/question/2296401_225963
http://www.fx114.net/qa-227-152024.aspx
http://www.jianshu.com/p/03bf22adaf11
相关文章推荐
- IOS开发——NSURLConnection服务器获取数据 & JSON数据解析
- [置顶] 困扰:微信开发 安卓和IOS下 对JSON格式解析 导致苹果手机sinature签名无效的问题
- [置顶] iOS开发—XML/JSON数据解析
- fastjson开发学习(二)---对返回的json进行解析
- 关于iOS开发 Json解析的几种方式
- iOS 通过HTTP获取和解析XML或者JSON 的类
- iOS开发-简单解析JSON数据
- Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)
- IOS开发 使用TouchJSON框架 解析JSON
- Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)
- ios开发——JSON解析
- IOS开发---菜鸟学习之路--(二十一)-利用正则表达式解析URL获取其中的参数
- iOS json 解析遇到error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be comple
- struts2 + ajax(从后台获取json格式的数据返回到前端,然后前端用jquery对json数据进行解析)
- iOS json 解析遇到error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed.
- IOS请求php返回的数据JSON数据无法正确解析 utf-8格式
- iOS开发中的6种JSON库解析速度测试
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及非文件上传的部分
- iOS解析Server端返回JSON数据
- IOS开发之——四种方法解析Json数据(转)