使用Retrofit获取错误onFailure:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:closed

时间:2016-02-01 10:50:28

标签: android retrofit

在将 OkHttpClient 对象添加到改造中时出现错误。

错误是: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:closed

这是我的代码

select * from
(
select * from
(
select *,row_number() over (partition by name order by id) as rn
from tableA
) as a
unpivot
(
val for col in (value1,value2,value3)
) as pvt
) as b
pivot
(max(val) for name in (x,y)) as pvt

我已经包含以下gradle文件。

  • 编译'com.squareup.retrofit:retrofit:2.0.0-beta2'
  • 编译'com.squareup.retrofit:converter-gson:2.0.0-beta2'
  • 编译'com.squareup.okhttp:okhttp:2.7.0'

使用以上代码我得到的错误是 on Failure:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:closed

我尝试过如下组合。

如果我只是使用 OkHttpClient okhttpclient = new OkHttpClient()而不是 getUnsafeOkHttpClient()

并添加此okhttpclient对象进行改造,如 .client(okhttpclient)而不是 .client(getUnsafeOkHttpClient())我没有收到任何错误。它将执行 onResponse()

出于安全考虑,我必须使用 getUnsafeOkHttpClient()。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:0)

请注意,Retrofit 2依赖于OkHttp进行网络操作。因此,一旦添加了retrofit2,就不需要显式添加OkHttp依赖项。我相信这可能会导致版本冲突。

修改:使用beta 3进行改造和gson

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
compile 'com.squareup.retrofit2:retrofit-converters:2.0.0-beta3'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3