使用OkHttp工具时Authorization请求头丢失问题

简介: 记一次联调三方接口时"Authorization"请求头丢失问题, 使用工具OkHttp

问题描述

对接三方接口接口,鉴权方式为Basic Auth,即在Header中加Authorization:Basic ${signature}。

  1. Postman请求结果:image.png
  2. Java代码使用OkHttp客户端调用返回:400 Bad Request
  3. 问题提交给接口提供方,得到反馈接口正常image.png

目测是ApiPost工具调用结果.

问题解决过程

经检查,接口路径,鉴权参数都没有任何问题。
代码debug调试时Authorization请求头也确实添加了。但是接口提供方日志显示缺少Header: Authorization。
通过debug跟踪okhttp源码发现这样一段代码:image.png
在重定向时,OkHttp会移除header: Authorization!!!
那么,提供方服务为什么要重定向一次?
答案是 nginx 自动把http请求转为https

问题找到,解决办法是把http请求改为https即可。
所以这是一个接口提供方提供接口路径不完全正确 + OkHttp触发的问题。

ps:我自己也下载ApiPost试了一下,发现可以成功。所以合理猜测Postman做了与OkHttp类似的处理而ApiPost没有。在重定向时,移除Authorization估计是处于安全考虑。

相关文章
|
存储 安全 测试技术
快速教你如何使用postman工具进行接口测试?(配置全局token、JWT可用)
快速教你如何使用postman工具进行接口测试?(配置全局token、JWT可用)
506 0
|
4月前
|
JSON 数据格式 开发者
preflight 错误,但服务端告诉你已经设置过了 CORS 信息怎么办
preflight 错误,但服务端告诉你已经设置过了 CORS 信息怎么办
|
6月前
|
安全 搜索推荐
基础入门 HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断
基础入门 HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断
|
7月前
|
数据采集 API
请解释什么是 HTTP 请求头,以及在爬虫中为什么要设置请求头?
请解释什么是 HTTP 请求头,以及在爬虫中为什么要设置请求头?
239 2
|
XML JSON JavaScript
Postman-03-请求/响应
Postman-03-请求/响应
|
7月前
|
XML JSON API
Postman 发送 POST 请求的最佳实践
Postman 是一个实用的开发工具,它让发送各类 POST 请求成为了可能,包括文本、JSON、XML 以及文件等。开发者利用此工具不仅能够检验API的功能性,还能仿真客户端的请求行为,进而深入了解客户端如何与 API 进行互动。
HttpURLConnection中请求头中携带Token的使用方法
HttpURLConnection中请求头中携带Token的使用方法
458 2
Postman - 设置全局请求 header 信息
Postman - 设置全局请求 header 信息
3759 0
Postman - 设置全局请求 header 信息
|
JSON API 数据格式
postman使用--发送请求
postman使用--发送请求