无法在 Retrofit 2.0 android 中获取 json 字符串作为响应

Posted

技术标签:

【中文标题】无法在 Retrofit 2.0 android 中获取 json 字符串作为响应【英文标题】:Unable to get json string as response in Retrofit 2.0 android 【发布时间】:2016-12-27 12:00:17 【问题描述】:

这不是重复的问题。 我将 Retrofit 2.0 和 json 用于网络任务。 此外,我没有使用 GSON 来解析 json,而是使用简单的 JsonObject 和 JsonArray 从 json 字符串中获取模型对象。 首先指导我在上述情况下必须使用哪种改装转换器。

其次,我无法将 json 字符串作为响应字符串。

我尝试了两种方法 - 方法 1 - 我使用了 Call。在这种情况下,response.body() 返回 null,尽管状态码是 200。

方法 2 - 我使用了 Call。在这种情况下, call.enqueue 方法调用“on failure method”而不是“onSuccess”,并且响应正文为空。 在这种情况下,状态码也是 200。

请建议如何获取 json 字符串作为改造 2.0 的响应。

【问题讨论】:

【参考方案1】:

您需要使用JsonObject 而不是VoidResponseBody。你的代码应该是

Call<JsonObject> getCall = request.getDataCall();
getCall.enqueue(new Callback<JsonObject>() 
    @Override
    public void onResponse(Call<JsonObject> call, Response<JsonObject> response) 

    

    @Override
    public void onFailure(Call<JsonObject> call, Throwable t) 

    
);

注意:确保您使用的是com.google.gson.JsonObject

【讨论】:

谢谢。它的工作。你能告诉我什么时候使用 void 和 response body。 this 可以让你清楚地了解它。 好的,我会读的。如果可能的话,提供更多帮助....帮助我处理这篇文章***.com/questions/38877535/…

以上是关于无法在 Retrofit 2.0 android 中获取 json 字符串作为响应的主要内容,如果未能解决你的问题,请参考以下文章

Android Retrofit 2.0 的详细 使用攻略(含实例讲解)

Android Retrofit 2.0 的详细 使用攻略(含实例讲解)

Android Retrofit 2.0 刷新令牌

Retrofit 2.0 使用详细教程

Retrofit 2.0:迄今为止最大的更新最好的Android HTTP客户端库

这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)(转)