curl(Client for URLs),可以用来发起HTTP请求,也可以用来下载文件,还可以用来授权,支持协议:HTTP、HTTPS、FTP、SFTP、SMTP、POP3、SOCKS4、IPv6等
-O
下载文件到本地,以结尾作为文件名
curl -O https://www.example.com/file.zip
-o
下载文件到本地,指定文件名
curl -o file.zip https://www.example.com/file.zip
-S
指定只显示错误信息
curl -S https://www.example.com
-s
不输出错误和进度信息
curl -s https://www.example.com
curl
默认发起GET请求
curl https://www.example.com
-X
指定 HTTP 请求的方法
curl -X GET https://www.example.com
-x
指定请求代理
curl -x http://proxy.example.com:8080 https://www.example.com
-v
显示请求和响应的详细信息,包括请求头、响应头、传输的数据
curl -v https://www.example.com
-trace
输出原始数据
curl -trace https://www.example.com
-H
指定请求头,Header
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer token" \
https://www.example.com/resource
-F
上传文件
默认添加标头
Content-Type: multipart/form-data
curl -F "file=@/path/to/file.zip" https://www.example.com/upload
-A
指定代理标头,User-Agent
curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.73 Safari/537.36' https://google.com
-I
发起HEAD请求
curl -I https://www.example.com
-k
跳过SSL检测
curl -k https://www.example.com
--cacert
指定 CA 证书进行 SSL 验证
curl --cacert path/to/certificate.pem https://www.example.com
-L
如果服务器返回重定向,自动跟随重定向
curl -L https://www.example.com/resource
-d
发起POST请求
使用
-d
HTTP请求会默认加上Content-Type : application/x-www-form-urlencoded
,并将请求方法转为POST,可以省略`-X POST
curl -X POST -d "username=cci&password=pass" https://www.example.com/resource
-b
发送Cookie
# 一个Cookie
curl -b "foo=bar" https://www.example.com/resource
# 多个Cookie
curl -b "foo=bar;bar=foo" https://www.example.com/resource
# 从文件中读取Cookie
curl -b cookie.txt https://www.example.com/resource
-c
将请求的Cookie写入文件
curl -c cookie.txt https://www.example.com/resource
-e
设置HTTP请求来源标头Referer
curl -e 'https://baidu.com' https://www.example.com
--limit-rate
限制请求和响应的带宽
curl --limit-rate 1k www.baidu.com
-w
格式化输出特定信息,在末尾显示响应码
# 显示 HTTP 状态码
curl -w "{%http_code}" www.baidu.com
%{time_total}
显示整个请求所花费的总时间,以秒为单位%{size_download}
显示下载的数据大小,以字节为单位%{size_upload}
显示上传的数据大小,以字节为单位%{url_effective}
显示实际请求的 URL,如果有重定向,将显示最终的 URL%{content_type}
显示响应的 Content-Type 头信息
curl -w "HTTP Status Code: %{http_code}\nTotal Time: %{time_total}s\nDownload Size: %{size_download} bytes\nUpload Size: %{size_upload} bytes\nEffective URL: %{url_effective}\nContent Type: %{content_type}" https://www.example.com