Command-Line Options
10 methodscurl 命令行常用选项,控制请求方法、头、数据、超时等行为。
curl -X <METHOD> <URL>指定 HTTP 请求方法(GET/POST/PUT/DELETE 等)。
Parameters
| Name | Type | Description |
|---|---|---|
| METHOD | string | HTTP 方法,如 POST、PUT、DELETE |
| URL | string | 目标 URL |
Returns
服务器响应体输出到 stdout
Example
curl
curl -X DELETE https://api.example.com/users/42
# PUT 更新资源
curl -X PUT https://api.example.com/users/42 \
-H "Content-Type: application/json" \
-d '{"name":"Bob"}'curl -H <HEADER> <URL>添加自定义 HTTP 请求头,可多次使用 -H 添加多个头。
Parameters
| Name | Type | Description |
|---|---|---|
| HEADER | string | 头内容,格式 "Name: Value" |
Returns
服务器响应体输出到 stdout
Example
curl
curl -H "Authorization: Bearer TOKEN" \
-H "Accept: application/json" \
https://api.example.com/mecurl -d <DATA> <URL>发送请求数据(默认 POST 请求),常用于表单或 JSON 提交。
Parameters
| Name | Type | Description |
|---|---|---|
| DATA | string | 请求体数据,可为原始字符串或 @文件路径 |
Returns
服务器响应体输出到 stdout
Example
curl
# 表单提交
curl -d "name=Alice&age=30" https://api.example.com/users
# JSON 提交(配合 -H)
curl -H "Content-Type: application/json" \
-d '{"name":"Alice","age":30}' \
https://api.example.com/users
# 从文件读取数据
curl -d @payload.json https://api.example.com/userscurl -o <FILE> <URL>将响应体保存到指定文件,而非 stdout。
Parameters
| Name | Type | Description |
|---|---|---|
| FILE | string | 输出文件路径,可用 - 表示输出到 stdout |
Returns
无 stdout 输出,数据写入文件
Example
curl
curl -o image.png https://example.com/logo.png
# 下载并显示进度
curl -# -o archive.zip https://example.com/file.zipcurl -L <URL>跟随 HTTP 重定向(3xx 响应)。
Returns
最终目标的响应体输出到 stdout
Example
curl
curl -L https://example.com/redirect
# 限制最大重定向次数
curl -L --max-redirs 5 https://example.com/redirectcurl -I <URL>只获取响应头(发送 HEAD 请求),不下载响应体。
Returns
响应头输出到 stdout
Example
curl
curl -I https://example.com
# 用 -i 显示响应头+响应体
curl -i https://example.comcurl -u <USER:PASSWORD> <URL>提供 HTTP 基本认证(Basic Auth)凭据。
Parameters
| Name | Type | Description |
|---|---|---|
| USER:PASSWORD | string | 用户名和密码,用冒号分隔;省略密码会提示输入 |
Returns
认证后的响应体输出到 stdout
Example
curl
curl -u alice:secret https://api.example.com/private
# 只给用户名,交互式输入密码
curl -u alice https://api.example.com/privatecurl -k <URL>跳过 TLS 证书校验(不安全,仅用于自签名证书调试)。
Returns
忽略证书错误后的响应体
Example
curl
curl -k https://self-signed.example.com
# 自签名证书更安全的做法:指定 CA
curl --cacert my-ca.pem https://internal.example.comcurl --retry <NUM> <URL>请求失败时自动重试指定次数。
Parameters
| Name | Type | Description |
|---|---|---|
| NUM | number | 重试次数 |
Returns
成功后的响应体,或最终失败时的错误
Example
curl
curl --retry 3 https://api.example.com/flaky
# 重试时延迟递增
curl --retry 5 --retry-delay 2 https://example.comcurl --connect-timeout <SECONDS> <URL>设置建立连接的超时时间(秒)。
Parameters
| Name | Type | Description |
|---|---|---|
| SECONDS | number | 连接超时秒数(支持小数) |
Returns
超时则请求失败并退出
Example
curl
curl --connect-timeout 5 https://example.com
# 同时限制总传输时间
curl --connect-timeout 5 --max-time 30 https://example.com