我使用curl
连接到REST API。 REST API在Authorization
标头中使用承载令牌。所以我的curl
电话看起来像这样:
curl -H "Authorization: Bearer <token>" https://www.example.com/api
此API已开始返回302重定向以响应我的API调用。
我添加了-L
选项,以指示curl
遵循重定向:
curl -L -H "Authorization: Bearer <token>" https://www.example.com/api
现在curl
执行重定向。
问题在于:curl正在发送自定义Authorization
标头以及重定向。我已使用-v
选项对此进行了验证,因此它会向我显示其发送的标题。
新服务器(我认为是Windows Azure)实际上无法使用400状态代码进行调用,因为它不喜欢Authorization
标头。重定向的URL根本不需要授权标头。
那么,如何让curl
不在重定向上发送自定义Authorization
标头?或者是否有另一种方法可以指定避免问题的Authorization
标题。
答案 0 :(得分:2)
这已在https://bytes.com/topic/asp-net/answers/918280-disable-button-click-prevent-multiple-postbacks中修复。特别是为了避免将凭据泄露到重定向位置。
使用curl 7.58.0它应该可以工作而不做任何更改。如果您仍想要传递凭据,则必须使用--location-trusted
选项。
除了使用-L
选项的 not 之外,早期版本没有解决方法,自行解析Location
字段并对新位置单独请求。 (如Matt Houser所述)
您可以找到有关此更改的更多信息curl 7.58.0。