curl
curl 请求参数详解
curl 是一个功能强大的命令行工具,用于传输数据,支持多种协议(HTTP、HTTPS、FTP等)。它提供了大量参数来定制请求。以下是 curl 请求的主要参数分类和详细介绍:
基本请求参数
-
-X/--request [METHOD]
-
指定HTTP请求方法(GET, POST, PUT, DELETE等)
-
示例:
curl -X POST https://example.com
-
-
-d/--data [DATA]
-
发送POST请求的数据
-
示例:
curl -d "name=John&age=30" https://example.com
-
-
-G/--get
-
将-d参数的数据以GET方式附加到URL后
-
示例:
curl -G -d "q=test" https://example.com/search
-
-
-H/--header [HEADER]
-
添加HTTP头
-
示例:
curl -H "Content-Type: application/json" https://example.com
-
认证参数
-
-u/--user [USER:PASSWORD]
-
设置服务器用户和密码
-
示例:
curl -u username:password https://example.com
-
-
--basic
-
强制使用HTTP Basic认证
-
示例:
curl --basic -u user:pass https://example.com
-
-
--digest
-
使用HTTP Digest认证
-
示例:
curl --digest -u user:pass https://example.com
-
数据传输参数
-
-F/--form [NAME=CONTENT]
-
模拟表单提交,可上传文件
-
示例:
curl -F "file=@photo.jpg" https://example.com/upload
-
-
--data-urlencode [DATA]
-
URL编码的POST数据
-
示例:
curl --data-urlencode "name=John Doe" https://example.com
-
-
-T/--upload-file [FILE]
-
上传文件
-
示例:
curl -T localfile https://example.com/upload
-
输出控制参数
-
-i/--include
-
在输出中包含HTTP响应头
-
示例:
curl -i https://example.com
-
-
-I/--head
-
只获取HTTP头信息
-
示例:
curl -I https://example.com
-
-
-o/--output [FILE]
-
将输出写入文件
-
示例:
curl -o output.html https://example.com
-
-
-O/--remote-name
-
使用远程文件名保存输出
-
示例:
curl -O https://example.com/file.txt
-
-
-s/--silent
-
静默模式,不显示进度和错误信息
-
示例:
curl -s https://example.com
-
-
-v/--verbose
-
显示详细操作信息
-
示例:
curl -v https://example.com
-
连接参数
-
--connect-timeout [SECONDS]
-
设置连接超时时间
-
示例:
curl --connect-timeout 10 https://example.com
-
-
-m/--max-time [SECONDS]
-
设置整个操作的最大时间
-
示例:
curl -m 30 https://example.com
-
-
--retry [NUM]
-
失败重试次数
-
示例:
curl --retry 3 https://example.com
-
-
--retry-delay [SECONDS]
-
设置重试间隔时间
-
示例:
curl --retry 3 --retry-delay 5 https://example.com
-
代理参数
-
-x/--proxy [PROTOCOL://HOST:PORT]
-
使用代理服务器
-
示例:
curl -x http://proxy.example.com:8080 https://example.com
-
-
--proxy-user [USER:PASSWORD]
-
设置代理用户名和密码
-
示例:
curl --proxy-user user:pass -x http://proxy.example.com https://example.com
-
安全参数
-
-k/--insecure
-
允许不安全的SSL连接(不验证证书)
-
示例:
curl -k https://example.com
-
-
--cacert [FILE]
-
指定CA证书文件
-
示例:
curl --cacert /path/to/cert.pem https://example.com
-
-
--cert [CERTIFICATE]
-
指定客户端证书
-
示例:
curl --cert client.pem https://example.com
-
-
--key [KEY]
-
指定私钥文件
-
示例:
curl --key key.pem https://example.com
-
Cookie处理
-
-b/--cookie [NAME=DATA]
-
发送Cookie
-
示例:
curl -b "session=1234" https://example.com
-
-
-c/--cookie-jar [FILE]
-
将服务器返回的Cookie保存到文件
-
示例:
curl -c cookies.txt https://example.com
-
-
-j/--junk-session-cookies
-
忽略会话Cookie
-
示例:
curl -j -b cookies.txt https://example.com
-
其他实用参数
-
-L/--location
-
跟随重定向
-
示例:
curl -L https://example.com
-
-
--compressed
-
请求压缩响应
-
示例:
curl --compressed https://example.com
-
-
-e/--referer [URL]
-
设置Referer头
-
示例:
curl -e "https://google.com" https://example.com
-
-
-A/--user-agent [NAME]
-
设置User-Agent
-
示例:
curl -A "Mozilla/5.0" https://example.com
-
-
--limit-rate [RATE]
-
限制传输速度
-
示例:
curl --limit-rate 100K https://example.com/file
-
-
-C/--continue-at [OFFSET]
-
断点续传
-
示例:
curl -C - -O https://example.com/bigfile
-
高级参数
-
--resolve [HOST:PORT:ADDRESS]
-
自定义DNS解析
-
示例:
curl --resolve example.com:443:1.2.3.4 https://example.com
-
-
--request-target [PATH]
-
指定请求目标(原始请求行)
-
示例:
curl --request-target "*" -X OPTIONS http://example.com
-
-
--trace [FILE]
-
将调试信息写入文件
-
示例:
curl --trace trace.txt https://example.com
-
-
--trace-ascii [FILE]
-
类似--trace,但使用ASCII格式
-
示例:
curl --trace-ascii trace.txt https://example.com
-
-
--raw
-
禁用所有内部HTTP解码
-
示例:
curl --raw https://example.com
-
curl 的参数非常丰富,上述只是常用的一部分。要查看完整参数列表,可以运行 curl --help all 或访问 curl 的官方文档。
浙公网安备 33010602011771号