如何使用curl设置授权标题

如何使用cURL传递授权标题? (不是PHP的cURL扩展名,在/usr/bin/curl的可执行文件)。

http://curl.haxx.se/docs/httpscripting.html

见第6部分。HTTPauthentication

HTTP身份validation

HTTP身份validation能够告诉服务器你的用户名和密码,以便它可以validation你被允许做你正在做的请求。 HTTP中使用的基本身份validation(默认情况下使用的是curltypes)是基于 文本的,这意味着它只发送稍微混淆的用户名和密码,但是仍然完全可以被在您和远程服务器之间的networking上嗅探的任何人读取。

告诉curl使用用户名和密码进行validation:

 curl --user name:password http://www.example.com 

该网站可能需要不同的身份validation方法(检查服务器返回的头文件),然后–ntlm,–digest,–negotiate甚至是–anyauth可能是适合您的选项。

有时候,您的HTTP访问只能通过使用HTTP代理才可用。 这似乎在各个公司尤其普遍。 HTTP代理可能需要自己的用户名和密码才能让客户端连接到互联网。 要指定那些curl,运行如下所示:

 curl --proxy-user proxyuser:proxypassword curl.haxx.se 

如果您的代理需要使用NTLM方法进行身份validation,则使用–proxy-ntlm(如果需要摘要使用–proxy-digest)。

如果您使用这些用户名和密码选项中的任何一个,但是省略了密码部分,curl会交互地提示input密码。

请注意,程序运行时,列出系统正在运行的进程时可能会看到其参数。 因此,如果您将其作为普通的命令行选项传递,其他用户也许能够看到您的密码。 有办法规避这一点。

值得注意的是,虽然这是HTTP身份validation的工作原理,但很多网站在提供login等时不会使用这个概念。请参阅下面的Weblogin章节以获取更多详细信息。

只需添加,您就不必点击:

 curl --user name:password http://www.example.com 

或者如果您尝试为OAuth 2发送身份validation:

 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时要小心

token_strAuthorization必须用空格分开,否则服务器端将不会获得HTTP_AUTHORIZATION环境。

对于HTTP基本身份validation:

curl -H "Authorization: Basic <_your_token_>" http://www.example.com

replace_your_token_和URL。