OkHttp“.string”没有关闭进程

时间:2016-11-18 14:02:20

标签: android retrofit2 okhttp

我试图在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()没有关闭进程。在它没有移动到下一行。如果有人知道解决方案,请帮助我。提前致谢

1 个答案:

答案 0 :(得分:0)

您可能不希望直接记录响应正文。响应主体是一次性流,并且在拦截器中读取它会阻止此请求的原始调用者能够访问它。

使用OkHttp’s logging interceptor可能是更好的选择。