停止curl在302重定向上发送授权标头

时间:2016-06-16 17:35:06

标签: redirect curl

我使用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标题。

1 个答案:

答案 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