AFNetworking的参数问题

一:传参问题:

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添加一个数据的键值对就可以了

3、怎么解决:


AFNetworking的参数问题_第1张图片

你可能感兴趣的:(AFNetworking的参数问题)