如何获取原始 Retrofit 响应字符串?
How to get a raw Retrofit response string?
我正在研究 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
请仔细阅读我的 post 并建议我一些解决方案。
使用Call<JSONObject>
。这样您甚至不需要在您的项目中包含任何 retrofit converters。
尝试使用 body().string()
而不是 body().toString()
我正在研究 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
请仔细阅读我的 post 并建议我一些解决方案。
使用Call<JSONObject>
。这样您甚至不需要在您的项目中包含任何 retrofit converters。
尝试使用 body().string()
而不是 body().toString()