这不是一个重复的问题。 我正在使用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的响应。
答案 0 :(得分:4)
您需要使用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) {
}
});
注意:确保您使用的是com.google.gson.JsonObject