如何获得原始的Retrofit响应字符串?

Ans*_*aik 5 android json retrofit2

我正在研究Retrofit,但我坚持一件事:如何在响应体上获得原始JSON.

public interface ViewMenuItems {
  @GET
  Call<ResponseBody> listRepos(@Url String url);
}

ViewMenuItems viewMenuItems = ApiClient.getClient().create(ViewMenuItems.class);
  Call<ResponseBody> responseBodyCall = viewMenuItems.listRepos(Webservices.MERCHANT + merchantId + Webservices.MENU_ITEMS_LASTMODIFIED);

       responseBodyCall.enqueue(new Callback<ResponseBody>() {
       @Override
       public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
          Log.d("MenuItems", "Response :: " + response.body().toString());
       }

       @Override
       public void onFailure(Call<ResponseBody> call, Throwable t) {
         Log.d("MenuItems", "Exception :: " + t.toString());
       }
 });
Run Code Online (Sandbox Code Playgroud)

但是在"MenuItems"日志中,我没有得到JSON响应,它就是这样的

MenuItems: Response :: retrofit2.Response@e292dd4
Run Code Online (Sandbox Code Playgroud)

请通过我的帖子,并建议我一些解决方案.

Sal*_*lem 22

尝试使用body().string()而不是body().toString()

  • @AhmedMousa 我认为它已在 Retrofit2 中删除 (3认同)

mac*_*usz 5

使用Call<JSONObject>. 这样您甚至不需要在您的项目中包含任何改造转换器