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

无法在改型2.0 android中获取json字符串作为响应,android,retrofit,retrofit2,Android,Retrofit,Retrofit2,这不是一个重复的问题。 我正在为网络任务使用改型2.0和json。 另外,我没有使用GSON解析json,而是使用简单的JsonObject和JsonArray从json字符串中获取模型对象。 首先,请指导我在上述情况下必须使用哪种改装转换器 其次,我无法将json字符串作为响应字符串 我尝试了两种方法- 方法1-我使用调用。在本例中,response.body()返回null,尽管状态代码为200 方法2-我使用Call。在这种情况下,call.enqueue方法调用“on failure m

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

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

我尝试了两种方法- 方法1-我使用调用。在本例中,response.body()返回null,尽管状态代码为200

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


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

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

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) {

    }
});
调用getCall=request.getDataCall(); getCall.enqueue(新回调(){ @凌驾 公共void onResponse(调用、响应){ } @凌驾 失败时公共无效(调用调用,可丢弃的t){ } });
注意:确保您使用的是
com.google.gson.JsonObject
您需要使用
JsonObject
而不是
Void
ResponseBody
。你的代码应该是

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) {

    }
});
调用getCall=request.getDataCall(); getCall.enqueue(新回调(){ @凌驾 公共void onResponse(调用、响应){ } @凌驾 失败时公共无效(调用调用,可丢弃的t){ } });
注意:确保您正在使用
com.google.gson.JsonObject

谢谢。它起作用了。也可以请你告诉我什么时候使用无效和响应体。我能给你一个清晰的想法。好的,我会读的。如果可能的话,再给我一点帮助…关于这篇文章,请帮助我,谢谢。它起作用了。也可以请你告诉我什么时候使用无效和响应体。我能给你一个清晰的想法。好的,我会读的。如果可能的话,再给我一点帮助……关于这个帖子,请帮助我