如何使用cURL传递授权标头? (可在 /usr/bin/curl 中执行) .
/usr/bin/curl
http://curl.haxx.se/docs/httpscripting.html
请参阅第6部分.HTTP认证
HTTP身份验证HTTP身份验证能够告诉服务器您的用户名和密码,以便它可以验证您是否可以执行您正在执行的请求 . HTTP中使用的基本身份验证(默认情况下是curl使用的类型)是基于纯文本的,这意味着它只会略微模糊地发送用户名和密码,但是在您和远程服务器之间嗅探网络的任何人仍然可以完全读取 . 告诉curl使用用户和密码进行身份验证:curl --user name:password http://www.example.com该站点可能需要不同的身份验证方法(检查服务器返回的标头),然后--ntlm, - digest, - negotiate甚至--anyauth可能是适合您的选项 . 有时,您的HTTP访问只能通过使用HTTP代理来实现 . 这似乎在各个公司中尤为常见 . HTTP代理可能需要自己的用户和密码才能允许客户端访问Internet . 要指定具有curl的那些,请运行类似于:curl --proxy-user proxyuser:proxypassword curl.haxx.se如果您的代理需要使用NTLM方法进行身份验证,请使用--proxy-ntlm,如果它需要Digest使用--proxy-digest . 如果您使用任何一个这些用户密码选项但省略密码部分,curl将以交互方式提示输入密码 . 请注意,在运行程序时,可能会在列出系统正在运行的进程时查看其参数 . 因此,如果您将密码作为普通命令行选项传递,则其他用户可能能够查看您的密码 . 有办法绕过这个 . 值得注意的是,虽然这是HTTP身份验证的工作原理,但很多网站在提供登录时都不会使用此概念 . 有关详细信息,请参阅下面的“Web登录”一章 .
只需添加即可,您无需点击:
curl --user name:password http://www.example.com
或者如果您尝试为OAuth 2发送身份验证:
curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com
持票人代币看起来像这样:
curl -H "Authorization: Bearer <ACCESS_TOKEN>" http://www.example.com
(对于那些正在寻找的人php-curl回答)
$service_url = 'https://example.com/something/something.json'; $curl = curl_init($service_url); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, "username:password"); //Your credentials goes here curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //IMP if the url has https and you don't want to verify source certificate $curl_response = curl_exec($curl); $response = json_decode($curl_response); curl_close($curl); var_dump($response);
这对我有用:
curl -H "Authorization: Token xxxxxxxxxxxxxx" https://www.example.com/
使用时请注意: 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
8 回答
http://curl.haxx.se/docs/httpscripting.html
请参阅第6部分.HTTP认证
只需添加即可,您无需点击:
或者如果您尝试为OAuth 2发送身份验证:
持票人代币看起来像这样:
(对于那些正在寻找的人php-curl回答)
这对我有用:
使用时请注意:
curl -H "Authorization: token_str" http://www.example.com
token_str
和Authorization
必须用空格分隔,否则服务器端将无法获得HTTP_AUTHORIZATION
环境 .对于HTTP Basic Auth:
curl -H "Authorization: Basic <_your_token_>" http://www.example.com
替换
_your_token_
和URL .如果您在拨打电话时没有令牌,则必须拨打两个电话,一个用于获取令牌,另一个用于从令牌中提取令牌,请注意
因为它是处理从响应中提取令牌的部分 .
提取令牌后,您可以使用令牌进行后续调用,如下所示 .