afn text html,iOS 关于AFNetworking报错

1、”Request failed: internal server error (500)”

1⃣️、一般先看自己的看 AFHTTPSessionManager 初始化是否正确

- (AFHTTPSessionManager *)manager {

if (!_manager) {

_manager = [MUHTTPSessionManager sharedHTTPSession]; // 自己实现的单例

_manager = [[APIClient alloc] initWithBaseURL:[NSURL URLWithString:API_BASE_URL]];

_manager.responseSerializer = [AFHTTPResponseSerializer serializer]; // 响应

_manager.requestSerializer = [AFHTTPRequestSerializer serializer]; // 请求

// 响应类型

[_manager.requestSerializer setValue:APP_key forHTTPHeaderField:@"APP_key"];

_manager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", @"text/plain", nil];

}

return _manager;

}

2⃣️、如果自己这边没有发现问题的话,很有可能是后台数据处理的问题了,这时候就要跟后台人员说下了,或者进行联调,毕竟做一个团队是需要及时沟通协调的!

2、Error Domain=com.alamofire.error.serialization.response Code=-1016 “Request failed: unacceptable content-type: text/html”

1⃣️、此错误意思是不能接收的返回值类型:text/html,即服务器返回了一个text/html类型的返回值。出现原因为AFN本身不能接受这种类型,默认接收类型只有application/json,text/json,text/javascript三种。

解决方案:为AFN添加此接收类型:self.acceptableContentTypes 在里面添加@”text/html”,@”text/plain”,这样就可以解决-1016的错误了

AFURLResponseSerialization.m 文件中

//找到此行

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];

//修改为

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html",@"text/plain" nil];

3、NSCocoaErrorDomain Code=3840 “JSON text did not start with array or object and option to allow fragments not set.”

1⃣️、错误意思是Json并不是以array或者object开始的,换句话说即json的格式不正确。

出现原因是服务器返回的数据并非Json,但是AFN却当成Json去强行解析,那报错就不足为奇了。

manager.responseSerializer 的初值[supersetResponse Serializer:responseSerializer];默认是json

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

//加上这一句即可

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

2⃣️、如果以AFHTTPResponseSerializer解析的话就不会报错,此时可以把返回的Data数据转成string,看一下实际的数据。

[self.manager POST:URLStr parameters:param progress:^(NSProgress * _Nonnull uploadProgress) {

} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {

NSString *nameStr = [[NSString alloc]initWithData: responseObject encoding:NSUTF8StringEncoding];

}];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值