AFNetworking--- status code500解决

具体这个问题的引起原因还找不到是前台问题还是后台问题,请原谅我出问题的网址也不能发出来。

现在先看一下控制台的打印错误



现在可以明确的看到,后台返回的网页状态码为:

__NSCFLocalDataTask: 0x1462ee50>{ taskIdentifier: 1 } { completed }-->Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: internal server error (500)" UserInfo={com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x14712be0> { URL: http://testapi.zhudd.com/v3/home/getBanner } { status code: 500


我现在把链接放在paw中跑一遍



OK,现在我们可以明显看出来,我没有传任何参数,接口都是500.不管咱们前台可不可以解决,先把这个问题告诉后台,他们午饭都会在想这个bug大笑

到这里还没有完,毕竟让后台吃不下去饭,并不能解决问题,接着上图




!有参数!!现在可以明确的看到,在status code等于500时,我们依然接收到了返回值。到这里有的人应该会明白为什么我们使用NSURLSessionDataTask安卓可以请求,但是AFNetworking不可以请求的原因了。因为我们一般的请求并不会用网页的status code来判断我们的这次请求是否成功,所以会造成一种AFNetworking不可以请求的假象。

到了现在说一下解决方案:

第一个最简单,把锅丢给后台。

第二个也不难,修改一下AFNetworking的成功失败判断条件。



AFNetworking原生库只判断error,如果有错误就走失败回调,我们只需要加一个只要responseObject不为空就走成功回调就可以了。


有错误请指正,谢谢


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值