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

Unable to get json string as response in Retrofit 2.0 android

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

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

我尝试了两种方法 - 方法 1 - 我使用了 Call< Void >。在这种情况下,response.body() returns null 虽然状态代码是 200.

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

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

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