2016-09-20 32 views
0

我正在将翻新1.9升级到v2.1.0。我想要得到的响应JSON和手动转换,但我得到了这样的事情:无法获得翻新v2呼叫响应

log res [email protected][email protected] 

我的代码是:

HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); 
    logging.setLevel(HttpLoggingInterceptor.Level.BASIC); 

    client = new OkHttpClient.Builder() 
      .connectTimeout(30, TimeUnit.SECONDS) 
      .writeTimeout(30, TimeUnit.SECONDS) 
      .readTimeout(30, TimeUnit.SECONDS) 
      .addInterceptor(logging) 
      .build(); 

     Retrofit retrofit = new Retrofit.Builder() 
      .client(client) 
      .baseUrl(Config.baseEndpoint) 
      .build(); 

    ApiService api = retrofit.create(ApiService.class); 

    Call<ResponseBody> login = api.login("email", "password"); 

    login.enqueue(new Callback<ResponseBody>() { 
     @Override 
     public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { 
      Log.e(TAG, "log res "+call.toString()+"-"+response.body().toString()); 
     } 

     @Override 
     public void onFailure(Call<ResponseBody> call, Throwable t) { 

     } 
    }); 

回答

1

使用JsonObject代替ResponseBody

Call<JsonObject> login = api.login("email", "password"); 

login.enqueue(new Callback<JsonObject>() { 
    @Override 
    public void onResponse(Call<JsonObject> call, Response<JsonObject> response) { 
     Log.e(TAG, "log res "+call.toString()+"-"+response.body().toString()); 
    } 

    @Override 
    public void onFailure(Call<JsonObject> call, Throwable t) { 

    } 
}); 

:请务必使用com.google.gson.JsonObject,而不是org.json.JSONObject

+0

我测试它,我们也应该添加'.addConverterFactory(GsonConverterFactory.create())'来改造builder –