我正在进行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());
}
});
但是在“MenuItems”日志中我没有得到JSON响应,它就是这样的
MenuItems: Response :: retrofit2.Response@e292dd4
请仔细阅读我的帖子并向我推荐一些解决方案。
答案 0 :(得分:20)
尝试使用body().string()
代替body().toString()
答案 1 :(得分:4)
使用Call<JSONObject>
。这样,您甚至不需要在项目中包含任何retrofit converters。