curl命令的常用参数
查看与下载
- 通过 -I 查看页面的响应头,比如http协议及nginx版本信息等
curl -s -I https://www.baidu.com
- 利用python工具将接口返回的json进行美化展示
curl xxxx | python -m json.tool
curl -k https://www.baidu.com
curl -sL 'http://iso.sqlfans.cn/docker/install_docker_2401.sh' | bash
docker --version
- 通过 -o或-O 将页面源码或目标文件保存到本地,-L 参数显示进度
curl -L -O http://iso.sqlfans.cn/docker/docker-24.0.1.tgz
curl -L http://iso.sqlfans.cn/docker/docker-24.0.1.tgz -o /opt/docker-24.0.1.tgz.bak
- 通过 -x 指定代理,curl会将http请求发送到指定的代理服务器,并由代理服务器转发请求到目标服务器
curl -x 10.30.4.44:80 http://iso.sqlfans.cn/112233.txt
查障调优
- 通过 -v 查看http或https的请求响应过程,用于调试
curl -sSL -v https://www.baidu.com:443
- 通过 --socks5 指定socket代理地址发起请求
curl --socks5 192.168.201.18:10010 --proxy-user admin:UKsSZF4zcNszfBHX http://www.baidu.com
- 利用 --resolve 自定义dns解析,可以绕过默认的DNS解析,使用自定义的ip地址来发送请求
curl --resolve example.com:127.0.0.1 http://example.com -vvv
- 利用 --connect-timeout 指定连接超时时间,-m 指定数据传输的最大允许时间
curl --connect-timeout 10 -m 20 https://www.baidu.com
- 利用 -w 获得http请求的响应时间,可以测试网站的打开速度
curl https://www.baidu.com -o /dev/null -s -w http_code:"\t\t"%{http_code}"\n"http_connect:"\t\t"%{http_connect}"\n"content_type:"\t\t"%{content_type}"\n"time_namelookup:"\t"%{time_namelookup}"\n"time_connect:"\t\t"%{time_connect}"\n"time_appconnect:"\t"%{time_appconnect}"\n"time_redirect:"\t\t"%{time_redirect}"\n"time_pretransfer:"\t"%{time_pretransfer}"\n"time_starttransfer:"\t"%{time_starttransfer}"\n"time_total:"\t\t"%{time_total}"\n"
- 利用 -w 获得http请求的响应时间,比如 返回状态码
curl -m10 -Isw "%{http_code}\n" https://www.baidu.com -o /dev/null
开发调试类
token=glsa_XKrkMpHxzbzntaWtgGi10SRqP3ZzEJT2_5e84f036
curl -s -X GET -H "Authorization: Bearer $token" http://127.0.0.1:3000/api/datasources/name/Prometheus
- 利用 -X 方法 '接口' -H 'header参数名:参数值' -d 'json消息体' 完成postman的body消息体
curl -XPUT "http://elastic:Admin_147@127.0.0.1:9200/es-index" -H 'Content-Type: application/json' -d"`cat /opt/es-index.json`"