每次做项目的时候都会在网络请求时候测试接口的时候会出现一些不同的错误,而控制台打印的错误提示信息都是data类型,看不出提示的错误的信息是什么。后面经过一些查阅发现其实是可以把这个转变为string的类型,这样就可以很明了的知道是什么错误。下面就来看看如何修改
(1)找到AFNetWorking的AFURLResponseSerialization.m 文件
(2)加上这句
#ifdef DEBUG
NSString *constAFNetworkingOperationFailingURLResponseStringErrorKey =@"com.alamofire.serialization.response.error.string";
#endif
如图
(3)找到这句
if (data) {
mutableUserInfo[AFNetworkingOperationFailingURLResponseDataErrorKey] = data;
}
替换成 (总共有两个地方要换)
if (data) { mutableUserInfo[AFNetworkingOperationFailingURLResponseDataErrorKey] = data;#ifdef DEBUG
mutableUserInfo[AFNetworkingOperationFailingURLResponseStringErrorKey] = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
#endif
}
(4)在网络请求的方法的 failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {// 在这里添加
NSLog(@"error ==%@", [error userInfo][@"com.alamofire.serialization.response.error.string"]);
} 这样以后请求数据返回的错误提示就会以字符串的行打印出来, 一看就知道是什么错误了。。。。