0
点赞
收藏
分享

微信扫一扫

获取Okhttp中全部请求头


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

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版本上进行的
 

举报

相关推荐

0 条评论