使用curl发送带用户名和密码的请求
curl -u username:password localhost:3100
等价于
curl -H “Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=” localhost:3100
就是将 username:password 进行base64编码,将编码后的结果放到header中通过 Authorization 参数传到服务器
username:password 经过base64编码后得到 dXNlcm5hbWU6cGFzc3dvcmQ= 如下:
$ php -r "echo base64_encode('username:password');"
dXNlcm5hbWU6cGFzc3dvcmQ=
或者在centos7上测试
[vagrant@localhost ~]$ echo -n "username:password" | base64
dXNlcm5hbWU6cGFzc3dvcmQ=
一定要添加-n参数,使用echo输出字符串时,如果没有-n参数会自动添加换行符
等价于python
import requests
resp = requests.get(url="http://localhost:3100",headers={"Authorization":"Basic dXNlcm5hbWU6cGFzc3dvcmQ="})
print(resp.text)
等价于php
<?php
$ch = curl_init("http://localhost:3100");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ="
]);
$resp = curl_exec($ch);
var_dump($resp);