获取Okhttp中全部请求头(一)

    xiaoxiao2021-03-25  69

    官方文档只有获取响应头的代码,如下:

    Headers responseHeaders = response.headers();

            int responseHeadersLength = responseHeaders.size();         for (int i = 0; i < responseHeadersLength; i++){             String headerName = responseHeaders.name(i);             String headerValue = responseHeaders.get(headerName);             System.out.print("TAG----------->Name:"+headerName+"------------>Value:"+headerValue+"\n");         }

     

    并没有请求头的示例代码:

    不过好在 Request里面也有headers()方法,于是改写代码如下:

    Headers requestHeaders = request.headers();         int requestHeadersLength = requestHeaders.size();         for (int i = 0; i < requestHeadersLength; i++){             String headerName = requestHeaders.name(i);             String headerValue = requestHeaders.get(headerName);             System.out.print("TAG----------->Name:"+headerName+"------------>Value:"+headerValue+"\n");         }

     

    执行结果后输出了自己添加的Header。但是,系统自带的并没有输出。

    尝试直接使用如下方式进行获取:

    requestHeaders.get("Accept-Encoding");

    但是结果却是 null

    翻看源码,最终找到了如下方法:

    Headers requestHeaders= response.networkResponse().request().headers();

    最终得到期望的结果。

    注:代码是在 okhttp 3.4.0版本上进行的

    转载请注明原文地址: https://ju.6miu.com/read-34624.html

    最新回复(0)