使用时要小心: curl -H "Authorization: token_str" http://www.example.com
curl -H "Authorization: token_str" http://www.example.com
token_str 和 Authorization 必须用空格分隔,否则服务器端将无法获得 HTTP_AUTHORIZATION 环境。
token_str
Authorization
HTTP_AUTHORIZATION
对于HTTP Basic Auth:
curl -H "Authorization: Basic <_your_token_>" http://www.example.com
更换 _your_token_ 和URL。
_your_token_
如果您在拨打电话时没有令牌,则必须拨打两个电话,一个用于获取令牌,另一个用于从令牌中提取令牌,请注意
grep令牌| cut -d,-f1 |切-d \“ - f4
因为它是处理从响应中提取令牌的部分。
echo "Getting token response and extracting token" def token = sh (returnStdout: true, script: """ curl -S -i -k -X POST https://www.example.com/getToken -H \"Content-Type: application/json\" -H \"Accept: application/json\" -d @requestFile.json | grep token | cut -d, -f1 | cut -d\\" -f4 """).split()
提取令牌后,您可以使用令牌进行后续调用,如下所示。
echo "Token : ${token[-1]}" echo "Making calls using token..." curl -S -i -k -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer ${token[-1]}" https://www.example.com/api/resources
http://curl.haxx.se/docs/httpscripting.html
请参阅第6部分.HTTP认证
HTTP身份验证 HTTP身份验证能够告诉服务器您的用户名和 密码,以便它可以验证您是否被允许执行您的请求 这样做。 HTTP中使用的基本身份验证(curl使用的类型 默认)是 川 文本 基于,这意味着它发送用户名和密码 只是略微混淆,但任何嗅探的人仍然完全可读 您和远程服务器之间的网络。 告诉curl使用用户和密码进行身份验证: curl --user name:password http://www.example.com 该站点可能需要不同的身份验证方法(检查标头 由服务器返回),然后--ntlm, - digest, - 谈判甚至 --anyauth可能是适合你的选择。 有时您的HTTP访问只能通过使用HTTP来实现 代理。这似乎在各个公司中尤为常见。 HTTP代理 可能需要自己的用户和密码才能让客户端通过 互联网。要指定具有curl的那些,请执行以下操作: curl --proxy-user proxyuser:proxypassword curl.haxx.se 如果您的代理需要使用NTLM方法进行身份验证, 使用--proxy-ntlm,如果它需要Digest使用--proxy-digest。 如果您使用这些用户+密码选项中的任何一个但省略了密码 部分,curl将以交互方式提示输入密码。 请注意,运行程序时,可能会看到其参数 列出系统的运行进程时。因此,其他用户可能是 如果您将密码作为普通命令行传递,则能够查看密码 选项。有办法绕过这个。 值得注意的是,虽然这是HTTP身份验证的工作方式,但非常 许多网站在提供登录等时都不会使用这个概念 下面的Web登录章节有关详细信息。
HTTP身份验证
HTTP身份验证能够告诉服务器您的用户名和 密码,以便它可以验证您是否被允许执行您的请求 这样做。 HTTP中使用的基本身份验证(curl使用的类型 默认)是 川 文本 基于,这意味着它发送用户名和密码 只是略微混淆,但任何嗅探的人仍然完全可读 您和远程服务器之间的网络。
告诉curl使用用户和密码进行身份验证:
curl --user name:password http://www.example.com
该站点可能需要不同的身份验证方法(检查标头 由服务器返回),然后--ntlm, - digest, - 谈判甚至 --anyauth可能是适合你的选择。
有时您的HTTP访问只能通过使用HTTP来实现 代理。这似乎在各个公司中尤为常见。 HTTP代理 可能需要自己的用户和密码才能让客户端通过 互联网。要指定具有curl的那些,请执行以下操作:
curl --proxy-user proxyuser:proxypassword curl.haxx.se
如果您的代理需要使用NTLM方法进行身份验证, 使用--proxy-ntlm,如果它需要Digest使用--proxy-digest。
如果您使用这些用户+密码选项中的任何一个但省略了密码 部分,curl将以交互方式提示输入密码。
请注意,运行程序时,可能会看到其参数 列出系统的运行进程时。因此,其他用户可能是 如果您将密码作为普通命令行传递,则能够查看密码 选项。有办法绕过这个。
值得注意的是,虽然这是HTTP身份验证的工作方式,但非常 许多网站在提供登录等时都不会使用这个概念 下面的Web登录章节有关详细信息。
持票人代币看起来像这样:
curl -H "Authorization: Bearer <ACCESS_TOKEN>" http://www.example.com
这对我有用:
curl -H "Authorization: Token xxxxxxxxxxxxxx" https://www.example.com/