curl -u参数使用 代码发送请求处理方式

技术 置顶 精帖
0 2,373
peng49
peng49 2021-07-22 16:58:26
 

使用curl发送带用户名和密码的请求

curl -u username:password localhost:3100

等价于

curl -H “Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=” localhost:3100

就是将 username:password 进行base64编码,将编码后的结果放到header中通过 Authorization 参数传到服务器
username:password 经过base64编码后得到 dXNlcm5hbWU6cGFzc3dvcmQ= 如下:

  1. $ php -r "echo base64_encode('username:password');"
  2. dXNlcm5hbWU6cGFzc3dvcmQ=

或者在centos7上测试

  1. [vagrant@localhost ~]$ echo -n "username:password" | base64
  2. dXNlcm5hbWU6cGFzc3dvcmQ=

一定要添加-n参数,使用echo输出字符串时,如果没有-n参数会自动添加换行符

等价于python

  1. import requests
  2. resp = requests.get(url="http://localhost:3100",headers={"Authorization":"Basic dXNlcm5hbWU6cGFzc3dvcmQ="})
  3. print(resp.text)

等价于php

  1. <?php
  2. $ch = curl_init("http://localhost:3100");
  3. curl_setopt($ch, CURLOPT_HTTPHEADER, [
  4. "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ="
  5. ]);
  6. $resp = curl_exec($ch);
  7. var_dump($resp);
回帖
登录
忘记密码?