ndroid的改造GET请求ConversionExceptio

ndroid的改造GET请求ConversionExceptio

本文介绍了Android的改造GET请求ConversionException问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的改造,使REST请求和(使用@SerializedName批注与GSON)创建相应的模型对象。有偶尔导致ConversionException虽然一个特定的GET请求,我无法追查原因。我会在同一时间10-20相似的GET请求几乎具有不同的参数,其中约90%的正确返回。剩余的失败,一个ConversionException:

retrofit.converter.ConversionException:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_OBJECT但STRING在第1行1列

在这个转换的异常发生,任何时候,我尝试再次作出这样的请求(不杀应用程序),它会始终具有相同的转换例外。如果我杀了应用程序,并开始完全新鲜的,它可能会工作。

我试图寻找在浏览器对于有这种转换的异常请求,JSON响应,但它看起来总是正确的。我已经做了不合格的要求,并成功的与JSON看起来完全相同之间有许多比较。

我的问题:

1)为什么这些转换异常发生时,据我所知,响应数据始终是正确的?

2)不改造做任何形式的缓存GET请求的?这或许可以解释为什么重新请求失败的请求继续失败,直到我杀了,然后重新启动应用程序。

谢谢!


解决方案

You expected data that looks like this:

{"foo":"bar"}

But Gson found something more like:

Hello!

It was expecting a JSON object beginning (aka the { character) but it found a string-like character instead.

Retrofit has no caching whatsoever.

Depending on what HTTP client you are using, it may cache the response of a GET request depending on the headers. Usually you have to opt-in to cache behavior in an HTTP client so if you haven't done that, I doubt it's enabled.

这篇关于Android的改造GET请求ConversionException问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-22 13:58