Android MismatchedInputException,网络请求成功,客户端识别为失败?

记录一个小坑。

最近在工作中遇到一个小坑,消耗类我一天的时间最终才把问题解决。

事件背景:

1、Android 端需要请求网络接口。于是按照惯例我写好调用代码,获取返回状态值。

2、运行程序,发现执行结果总是失败。

3、抓包查看请求信息,发现请求成功了,服务器返回状态码为200。Response 无返回内容

4、反复检查 Android 端代码,没有发现错误。

5、Debug 调式发现,程序总是会走到请求失败的分支,根本就得不到 Response 对象的数据。Throwable 对象的信息如下:

异常类型:MismatchedInputException

错误信息:No content to map due to end-of-input

看到异常信息,首先怀疑到 Android 端请求参数和调用的代码有问题?

于是使用同样的方式调用另外一个接口,也找公司大佬帮忙确认了调用代码,发现没问题。

问了 IOS 司机,他说可以请求成功。哎呦,那服务器接口和网络环境没问题了。

三端都没问题,但是 Android 端调用不成功,无解了。

。。。

知直到请教了好几位大佬后,都分析认为是服务器没有返回内容导致的。通过上面的异常信息得知,并不是 Android 端调用代码的输入错误,而是 okhttp 在解析服务哦返回的 json 时,抛出的异常。算是 Android 端的网络框架的锅巴。

我没权限修改网络框架啊,问题还是要解决的。大概直到了可能的原因,于是求助服务端老司机随便给点返回值。再运行 Android 端程序跑一把,好了!

那行吧,这个坑我收藏了。结束了一天的阴暗。

猜你喜欢

转载自blog.csdn.net/fesdgasdgasdg/article/details/90896399