我curl用来连接REST API.REST API在Authorization标头中使用Bearer令牌.所以我的curl电话看起来像这样:
curl -H "Authorization: Bearer <token>" https://www.example.com/api
Run Code Online (Sandbox Code Playgroud)
此API已开始返回302重定向以响应我的API调用.
我添加了-L指示curl遵循重定向的选项:
curl -L -H "Authorization: Bearer <token>" https://www.example.com/api
Run Code Online (Sandbox Code Playgroud)
现在curl确实执行重定向.
这是问题所在:curl正在发送自定义Authorization标头以及重定向.我已经使用该-v选项对此进行了验证,因此它向我显示了它正在发送的标头.
新的服务器(我认为是Windows Azure)实际上使用400状态代码失败,因为它不喜欢Authorization标头.重定向的URL根本不需要授权标头.
那么,我怎样才能在重定向上curl不发送我的自定义Authorization标题?或者是否有另一种方法来指定Authorization避免问题的标题.
这已在curl 7.58.0中修复。特别是为了避免将凭据泄露到重定向位置。
对于curl 7.58.0,它应该可以在不进行任何更改的情况下工作。如果您仍想传递凭据,则必须使用该--location-trusted选项。
对于早期版本,除了不使用该-L选项、自行解析Location字段并向新位置发出单独的请求之外,没有其他解决方法。(正如马特·豪瑟提到的)
您可以在此处找到有关此更改的更多信息。
| 归档时间: |
|
| 查看次数: |
1118 次 |
| 最近记录: |