问题描述
我使用的改造,使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问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!