curl 是一款功能强大且用途广泛的命令行工具,用于在各种协议下传输数据。它支持 HTTP、HTTPS、FTP 等多种协议,并提供丰富的选项来处理请求、认证、文件传输等任务。
curl 帮助文件完整翻译
以下是 curl 命令行工具的常用选项及其详细说明,涵盖连接、认证、数据传输、文件操作等功能。
连接与协议相关选项
--abstract-unix-socket
认证与安全选项
--anyauth:自动选择合适的身份验证方法。--basic:使用 HTTP 基本认证(Basic Authentication)。--aws-sigv4
SSL/TLS 相关选项
--cacert :指定 TLS 1.3 的加密算法列表。--tls-max
数据发送与表单选项
-d, --data :发送 HTTP POST 数据(默认 Content-Type 为 application/x-www-form-urlencoded)。--data-binary :以二进制格式发送 HTTP POST 数据。--data-urlencode :发送 URL 编码后的 HTTP POST 数据。-F, --form
文件操作选项
-o, --output
请求控制选项
-X, --request
输出与调试选项
-i, --include:在输出中包含 HTTP 响应头。-I, --head:仅获取 HTTP 响应头(HEAD 请求)。-v, --verbose:启用详细输出模式,显示请求和响应的详细信息。--trace
代理相关选项
-x, --proxy [protocol://]host[:port]:通过指定的代理服务器发送请求。--socks5
常用 curl 命令示例
以下是 curl 在实际场景中的应用示例,涵盖基本请求、数据发送、认证、文件操作等功能,帮助您快速掌握其用法。
1. 基本请求
发送 GET 请求
curl https://example.com
获取指定 URL 的内容,默认使用 GET 方法。
发送 POST 请求
curl -X POST https://example.com
显式指定 POST 方法发送请求。
2. 设置请求头
自定义 User-Agent
curl -H "User-Agent: MyCustomUserAgent" https://example.com
模拟特定客户端(如浏览器)的 User-Agent。
发送多个请求头
curl -H "Authorization: Bearer
同时设置认证令牌和内容类型。
3. 发送数据
发送 POST 数据
curl -X POST -d "key1=value1&key2=value2" https://example.com
以键值对形式发送数据,默认编码为 application/x-www-form-urlencoded。
发送 JSON 数据
curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1","key2":"value2"}' https://example.com
发送结构化的 JSON 数据,常用于 API 调用。
上传文件
curl -F "file=@/path/to/file" https://example.com/upload
以表单方式上传本地文件。
4. 认证与授权
基本认证
curl -u username:password https://example.com
使用用户名和密码进行 HTTP 基本认证。
Bearer Token 认证
curl -H "Authorization: Bearer
使用 OAuth 2.0 的 Bearer Token 访问受保护资源。
5. 使用代理
通过 HTTP 代理
curl -x http://proxyserver:port https://example.com
指定代理服务器转发请求。
通过 SOCKS5 代理
curl --socks5 proxyserver:port https://example.com
使用 SOCKS5 协议进行代理。
6. 文件下载与上传
下载文件并保存
curl -O https://example.com/file.zip
使用远程文件名保存文件到本地。
下载并重命名
curl -o myfile.zip https://example.com/file.zip
指定本地文件名保存文件。
上传文件
curl -T myfile.zip https://example.com/upload
将本地文件上传至服务器。
7. 设置超时
连接超时
curl --connect-timeout 30 https://example.com
设置连接超时为 30 秒。
总超时
curl --max-time 60 https://example.com
设置整个请求的最大时间为 60 秒。
8. 处理重定向
自动跟随重定向
curl -L https://example.com
跟随服务器返回的 301/302 重定向。
限制重定向次数
curl -L --max-redirs 3 https://example.com
最多跟随 3 次重定向,避免无限循环。
9. 获取响应头
仅获取响应头
curl -I https://example.com
发送 HEAD 请求,仅返回头部信息。
显示请求和响应头
curl -v https://example.com
输出详细的请求和响应头信息。
10. SSL/TLS 配置
跳过证书验证
curl -k https://example.com
忽略 SSL/TLS 证书验证(仅限测试)。
使用证书和密钥
curl --cert /path/to/cert.pem --key /path/to/key.pem https://example.com
指定客户端证书和私钥进行双向认证。
11. 调试与日志
启用详细模式
curl -v https://example.com
显示请求和响应的详细信息。
输出调试日志
curl --trace debug.txt https://example.com
将详细调试信息保存到文件。
12. 其他实用选项
发送带参数的请求
curl "https://example.com?param1=value1¶m2=value2"
在 URL 中附加查询参数。
使用 HTTP/2
curl --http2 https://example.com
强制使用 HTTP/2 协议。
保存和读取 Cookie
curl -c cookies.txt https://example.com # 保存 Cookie
curl -b cookies.txt https://example.com # 读取 Cookie
处理会话相关的 Cookie 数据。