2016-08-20 28 views
1

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

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

我试了两种方法 - 方法1 - 我用呼叫< Void>。在这种情况下,尽管状态代码是200,但response.body()返回null。

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

请建议如何获得json字符串作为来自翻新2.0的响应。

回答

3

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

+0

感谢。它的工作。你也可以告诉我什么时候使用void和response body。 –

+0

[this](http://stackoverflow.com/questions/28970476/how-to-perform-a-delete-request-without-return-type-or-callback-retrofit)可以给你清晰的想法。 –

+0

好吧,我会读它。如果可能的话,还有一个帮助....帮我关于这篇文章 http://stackoverflow.com/questions/38877535/unable-to-parse-different-json-format-string-via-gson –

相关问题