在执行操作之前,我需要获取请求正文并使用 Retrofit 2.0 执行一些逻辑enque
操作。但不幸的是,我无法从我的服务电话中获取帖子正文内容。目前,经过大量搜索后,我只找到了一个解决方案,例如我使用该方法使用 Retrofit 2.0通过使用with发布logging
的解决方案。我正在使用以下代码在 Android Logcat 中记录请求正文:request
HttpLoggingInterceptor
OkHttpClient
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(Level.BODY);
OkHttpClient httpClient = new OkHttpClient();
httpClient.interceptors().add(logging);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseURL)
.addConverterFactory(GsonConverterFactory.create())
.build();
return retrofit.create(apiClass);
我使用上述方法面临的问题:
- 请求正文仅在默认的 Android Logcat 上可见,例如
02-04 01:35:59.235 5007-5035/com.example.retrofitdemo D/OkHttp:{"nameValuePairs":{"id":"1","name":"chandru","type":"user"}}
但是上述方法只返回 logcat 中的响应正文,我无法将其作为String
or获取JSONObject
。即使我能够使用 获取响应正文HttpLoggingInterceptor
,即使在应用程序投入生产之后,我的请求正文也会一直显示在带有“OkHttp”标签的 Logcat 中(所以这主要是一种缓解帖子的方式logcat 中的数据)。
我的要求:
我需要以或任何方法获取请求正文,String
而JSONObject
无需修改 Logcat 中的发布数据。
我尝试了什么:
onResponse
即使在from之后,我也尝试获取请求正文Response<T> response
,但是尽管我无法完成它。请找到我用于此目的的代码如下:
Gson gson = new Gson();
String responseString = gson.toJson(response.raw().request().body());
注意:上述转换后的请求体 usinggson.toJson
方法只返回元数据,不返回请求 post 数据。
请通过提供您宝贵的提示和解决方案来帮助我。我不知道该怎么做。在过去的两天里,我完全被这个问题所困扰。如果我的问题太长,请原谅。欢迎你提出任何建议。如果我的要求不清楚,请告诉我。提前致谢。