如何使用okhttp3获取http响应标头并决定是否获取响应正文

时间:2019-08-27 13:32:37

标签: header response okhttp

我想使用响应头来确定是否获取响应主体,这种情况是这样的,我需要确定响应头中的会话是否过期以确定是否继续下载该文件。如果会话到期,只需取消下载即可。

我看着okhttp的拦截器,发现它不符合我的要求。

1 个答案:

答案 0 :(得分:0)

    Interceptor interceptor = new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {
            //拦截
            Response originalResponse = chain.proceed(chain.request());


            Headers headers = originalResponse.headers();
            if (callback != null){
                callback.onCallBack(headers,downloadId);
            }

            //包装响应体并返回
            return originalResponse
                    .newBuilder()
                    .body(new ProgressResponseBody(originalResponse.body(), progressListener))
                    .build();
        }
    };
    return client.newBuilder()
            .addInterceptor(interceptor)
            .build();