2016-08-20 27 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 –

相關問題