早上测试提了一个bug,用户未登录时请求某个接口,APP提示连接服务器失败。
ok,开始找原因,找到请求的接口进行调试,我这里用的是AFNetworking 3.0发起的请求,果不其然,进入了请求失败的回调方法。
把接口请求参数发给后台,让后台做校验,后台大哥说了一句我这边没有问题,返回数据是正常的,就忙其他的去了。
好吧 ~~~
我不怕, 接入的有 WoodPecker ,可以打印查看各种信息。然后
看到这个的时候我是有点懵的,服务器返回的数据没有问题,我发送的接口请求也是没有问题的(同样的接口,登录状态下传入用户信息整个请求是没问题的),问题只出现在未登录的情况下。
后台在忙,暂时只能我找原因,然后就是打印各种信息,始终定位不到问题。快要懵逼的时候发现了问题所在。
这是不同的两个接口打印的头部信息,Status Code引起了我的注意,对比WoodPecker 打印的返回数据信息来看,请求失败的接口Status Code的值和后台返回数据的code值是一样的。调试了一下其它接口,基本确定了原因。
向后台咨询了一下,后台的状态码返回范围是200--1000,按理说我们移动端也不应该会报错,就翻看了一下AFNetWork的源码,找了了这个属性(可接受HTTP状态码):
然后又找到了这几句代码:
当后台返回的状态码(Status Code)为600的时候,不在AFNetWork源码里设定的可接受状态码范围内,就直接进入失败回调了。
我的理解发送的请求后台已经收到,并返回数据,Status Code应该为200,后台修改一下就好了。
满怀信心找后台修改,后台: