我试图在Retrofit webservice调用时使用OKHttp拦截器打印响应体。请在下面找到拦截器
public class ResponseValidationInterceptor implements Interceptor {
public static final String TAG = "ResponseValidationInterceptor";
@Inject
public ResponseValidationInterceptor() {
}
@Override
public Response intercept(Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
Log.e(TAG, "resposne --->" + originalResponse.body().string());
return originalResponse;
}
}
在上面的拦截器上,如果我评论一行Log.e,一切正常。否则,originalResponse.body.string()没有关闭进程。在它没有移动到下一行。如果有人知道解决方案,请帮助我。提前致谢
答案 0 :(得分:0)
您可能不希望直接记录响应正文。响应主体是一次性流,并且在拦截器中读取它会阻止此请求的原始调用者能够访问它。
使用OkHttp’s logging interceptor可能是更好的选择。