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

时间:2016-08-20 12:16:12

标签: android retrofit retrofit2

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

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

我尝试了两种方法 - 方法1 - 我使用Call<无效>。在这种情况下,response.body()返回null,但状态代码为200。

方法2 - 我使用Call< ResponseBody>。在这种情况下,call.enqueue方法调用失败方法'取而代之的是成功'并且响应主体为空。 在这种情况下,状态代码也是200。

请建议如何将json字符串作为retrofit 2.0的响应。

1 个答案:

答案 0 :(得分:4)

您需要使用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