一:传参问题:
AFNetworking的请求传递参数问题,parameters传递的是一个NSDictionary形式的参数。例如:[manager GET:@"http://localhost/videos.json" parameters:dict success: ^(AFHTTPRequestOperation *operation, id responseObject) {} failure: ^(AFHTTPRequestOperation *operation, NSError *error) {}];
二:从error中得到返回数据的问题:
1、问题描述:
使用AFNetworking的GET请求时,有一种情况是请求成功但是json解析错误也会进入failure块的分支,但是failure分支中的参数failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) 并没有携带请求的返回数据(responseObject)的参数。所以如何在failure分支中拦截json解析错误的时候获取请求返回数据呢?
2、解决办法:
修改AFNetworking的源代码:由于failure分支中的参数failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error)。
1)error携带了@property (readonly, copy) NSDictionary *userInfo;
2)uerInfo中有关键字:AFNetworkingTaskDidCompleteResponseDataKey 。
3) NSString * const AFNetworkingTaskDidCompleteResponseDataKey = @"com.alamofire.networking.complete.finish.responsedata";(即返回数据)
所以只需要在返回error的源码中,给error的userInfo添加一个数据的键值对就可以了