开发者工具 · 命令速查

Curl 命令大全

选项/场景化示例

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 53 次使用
cURL Options · Cheatsheet
选 项 分 类基础 · 请求头 · 数据 · 文件 · 认证 · Cookie · 重定向/超时 · 代理 · SSL/TLS · 调试/输出
选 项 全 表Gallery · 点卡片看语法 / 取值 / 场景 / 示例
点选左侧任一选项
查看 语法 / 取值搭配 / 中文说明 / 典型场景 · 示例命令 · 相关选项
常 用 组 合Combos · 几条高频实战命令速查(点命令可复制)
就绪 · 含分类速查 + 取值搭配 + 中文说明 + 典型场景 + 示例 + 不安全选项朱砂警示 · 全程浏览器本地
第一节

关于本工具

About

调试接口时最烦的,不是参数写错,是 curl 命令敲到一半忘了 -H 和 -d 的先后顺序,或者记不住怎么把 Cookie 塞进请求头。这个工具把常用选项按用途分组,每个选项配一个可运行的场景示例,点击就能看到请求构造和响应。所有解析在浏览器内完成,命令不会离开本地。适合前后端联调时快速查语法、写测试脚本前确认参数写法。

使用场景

排查 API 调用失败

后端服务上线后,接口返回 502 错误码,但前端日志里看不出具体原因。运维需要在服务器上模拟一次完整请求,看服务端实际返回的响应头和状态码。本工具提供了完整的请求参数配置,包括 URL、请求头、请求体、超时时间,执行后直接输出响应状态码和耗时,帮助快速定位是网关超时还是后端服务崩溃。

调试 OAuth 登录流程

对接第三方登录时,回调地址总是返回 'redirect_uri_mismatch'。开发需要手动构造带授权码的 GET 请求,验证回调地址是否被正确编码。本工具支持直接填写 URL 和查询参数,自动处理 URL 编码,执行后能看到服务端返回的 token 或错误详情,省去手动拼接和编码的反复试错。

验证 CDN 缓存是否生效

前端资源更新后,用户端仍加载旧版本。运维需要在不同节点上模拟请求,看响应头里 X-Cache 字段是 HIT 还是 MISS。本工具可以指定请求头(如 User-Agent、Accept-Encoding),并查看完整的响应头信息,通过对比不同节点的缓存状态,确认 CDN 刷新是否已全球生效。

测试 Webhook 回调响应

支付系统配置了异步回调地址,但回调日志里总是报 'timeout'。开发需要模拟支付平台发送 POST 请求到回调接口,检查服务端是否在规定时间内返回 200。本工具支持自定义请求体(JSON/XML)和超时时间,执行后显示服务端响应状态和耗时,帮助判断是回调接口处理慢还是网络延迟。

模拟不同客户端请求

移动端用户反馈接口返回的数据格式异常,但 PC 端正常。测试需要模拟移动端 User-Agent 发送请求,看服务端是否根据客户端类型返回了不同结构。本工具允许自定义请求头,包括 User-Agent、Accept-Language 等,执行后对比返回体,快速定位服务端对移动端的特殊处理逻辑是否有 bug。

第二节

使用指南

Getting Started

使用步骤

  1. 1在左侧「命令」输入框粘贴或键入 curl 命令(如 curl -I https://example.com),右侧实时解析出各参数含义与示例
  2. 2点击「场景标签」切换至「文件上传」「API 测试」等分类,命令列表自动过滤为对应场景的常用选项
  3. 3点选任一命令行后的「复制」图标,命令即写入剪贴板,可直接粘贴到终端执行
  4. 4展开底部「参数说明」面板,按字母顺序列出当前命令中所有 curl 选项的详细解释与典型用法

输入输出示例

输入输出说明
curl -I https://www.example.comHTTP/2 200 content-type: text/html content-length: 1256 ...常规:-I 仅获取响应头,不下载正文,验证基本 HEAD 请求行为
curl -X POST -d 'name=test' https://httpbin.org/post{ "form": { "name": "test" }, "headers": { "Content-Type": "application/x-www-form-urlencoded" } }常规:POST 请求 + 表单数据,验证 -X 和 -d 组合的正确用法
curl -o /tmp/out.txt https://example.com/largefile% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 50M 100 50M 0 0 10.5M 0 0:00:04 0:00:04 --:--:-- 10.5M常规:带进度条的下载,验证 -o 输出重定向,适合大文件场景
curl --connect-timeout 3 https://192.0.2.1curl: (28) Connection timed out after 3001 milliseconds边界:连接超时,验证 --connect-timeout 生效,测试不可达地址
curl -H "Authorization: Bearer abc123" https://api.example.com/data{ "status": "ok", "data": [...] }边界:自定义请求头,验证 -H 传递 Bearer Token,常见于 API 鉴权
curl -v https://example.com* Trying 93.184.216.34:443... * Connected to example.com (93.184.216.34) port 443 (#0) * SSL connection using TLSv1.3 > GET / HTTP/1.1 > Host: example.com > User-Agent: curl/7.68.0 ... < HTTP/1.1 200 OK ...易错:-v 输出详细握手和请求/响应,新手常误以为这是错误信息,实际是调试利器
curl --data-urlencode 'param=hello world' https://httpbin.org/post{ "form": { "param": "hello world" }, "headers": { "Content-Type": "application/x-www-form-urlencoded" } }易错:--data-urlencode 自动编码空格为 %20,而 -d 不会编码,新手容易混淆导致参数错误

常见错误对照

1.URL 未用引号包裹,& 被 Shell 吞掉

✗ 错误curl https://api.example.com?key=abc&format=json
✓ 修复curl 'https://api.example.com?key=abc&format=json'

Shell 中 & 是后台执行符,不加引号时 &format=json 会被解释为命令分隔符,导致只发送 key=abc 部分。

2.POST 请求漏写 -d 参数,默认变 GET

✗ 错误curl https://httpbin.org/post name=alice age=30
✓ 修复curl -d 'name=alice&age=30' https://httpbin.org/post

Curl 默认用 GET 方法,即使 URL 是 /post 也不会自动切换。必须显式用 -d 或 --data 才能发送 POST 请求体。

3.JSON 数据未转义引号,Shell 报错

✗ 错误curl -X POST -H 'Content-Type: application/json' -d '{"name": "alice"}' https://api.example.com
✓ 修复curl -X POST -H 'Content-Type: application/json' -d '{"name":"alice"}' https://api.example.com

Shell 单引号内双引号无需转义,但反斜杠会被保留。正确做法是去掉反斜杠,或改用双引号包裹外层并转义内部双引号。

4.文件上传用 -F 时忘记 @ 前缀

✗ 错误curl -F 'file=photo.jpg' https://upload.example.com
✓ 修复curl -F 'file=@photo.jpg' https://upload.example.com

-F 的 value 如果不加 @,Curl 会把字符串 'photo.jpg' 作为字段值发送,而不是读取本地文件。@ 是文件上传的必需前缀。

5.HTTPS 证书验证失败时直接加 -k 跳过

✗ 错误curl -k https://internal.example.com
✓ 修复curl --cacert /path/to/ca-bundle.crt https://internal.example.com

-k 会关闭所有证书验证,存在中间人攻击风险。正确做法是指定正确的 CA 证书或使用 --resolve 固定证书指纹。

6.Cookie 文件路径写错导致 -b 无效

✗ 错误curl -b cookies.txt https://example.com
✓ 修复curl -b /tmp/cookies.txt https://example.com

Curl 的 -b 参数若只给文件名,会在当前工作目录查找。若文件不存在则静默忽略,不会报错。建议用绝对路径或先确认文件存在。

7.重定向时未加 -L,只拿到 301 响应

✗ 错误curl https://httpbin.org/redirect/1
✓ 修复curl -L https://httpbin.org/redirect/1

Curl 默认不跟随 HTTP 重定向,只返回 301/302 状态码和 Location 头。加 -L 后会自动跟随,最多重定向 50 次(可用 --max-redirs 调整)。

8.输出重定向 > 与 curl -o 混用,文件内容异常

✗ 错误curl -o output.html https://example.com > output.html
✓ 修复curl -o output.html https://example.com

同时使用 -o 和 > 会导致文件被打开两次,输出内容可能交错或截断。应二选一:-o 指定文件名,或用 > 重定向 stdout。

第三节

工作原理

How It Works

核心公式

HTTP 响应时间 = T₃ + T₄ + T₅ + T₆

变量说明

  • T₃DNS 解析耗时(毫秒)
  • T₄TCP 连接耗时(毫秒)
  • T₅TLS 握手耗时(毫秒)
  • T₆首字节响应耗时(毫秒)

示例

用 curl -w 测试某 API:DNS 解析 12ms、TCP 连接 45ms、TLS 握手 68ms、首字节响应 230ms → 总响应时间 = 12+45+68+230 = 355ms。

输入 Curl 命令(含选项与URL)解析选项(-X / -H / -d等)构建请求结构(方法/头/体)生成命令选择场景模板(REST / 文件等)填充参数(URL/数据/头)校验合法性(选项冲突检查)输出命令两种入口
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
为什么我复制 curl 命令进去执行返回错误,说语法不对?

本工具只展示 curl 命令的写法示例和选项说明,不向服务器发送实际请求。如果命令在终端执行报错,常见原因包括:URL 需要引号包裹(尤其含 & 或 ? 时)、Windows 下双引号与 Linux 单引号混用、或漏了 -H 头的冒号。建议先在终端用 curl --version 确认版本,再对照本页的示例逐项检查参数顺序。

这个工具能直接帮我生成 curl 命令然后复制到终端用吗?

可以。本工具提供场景化的 curl 命令示例,每个示例都标注了适用场景(如 POST JSON 数据、带 Cookie 请求、文件上传等)。找到匹配场景后,直接复制命令文本到终端执行即可。如果命令含示例占位符(如 {your_token}),请替换为实际值。

为什么同一个 URL,用浏览器能打开,用 curl 却返回 403?

浏览器自动携带了 Cookie、User-Agent 等请求头,而 curl 默认不携带。本工具示例里包含了常见场景所需的请求头写法:比如 -H 'User-Agent: Mozilla/5.0' 模拟浏览器、-H 'Cookie: session=xxx' 带登录态。如果目标网站有反爬机制,还需额外添加 Referer 头。

curl 的 -d 和 --data-urlencode 有什么区别,什么时候用哪个?

-d 直接发送原始字符串,如果数据里含有 &、=、空格等特殊字符,服务端可能解析错误。--data-urlencode 会自动对值进行 URL 编码(比如空格变 %20),适合发送表单数据或含非 ASCII 字符的字段。本工具在 POST 示例中同时提供了两种写法,可对比查看差异。如果数据来自用户输入,建议始终用 --data-urlencode。

我想用 curl 上传文件,但一直报错,格式怎么写?

上传文件用 -F 参数,格式为 -F 'field=@/path/to/file'。注意 @ 符号不能省略,且路径用绝对路径最稳。如果同时上传文件和其他字段,写多个 -F 即可。本工具在「文件上传」示例中给出了带文件字段和普通字段的完整写法。Windows 下路径用反斜杠时需用双引号包裹。

curl 命令里的 -X POST 和 -d 必须一起写吗?

不一定。单独写 -d 时 curl 会自动使用 POST 方法,加 -X POST 只是显式声明。但某些场景必须显式指定方法:比如 -X PUT 配合 -d 做资源更新、或 -X DELETE 发删除请求。本工具在 RESTful API 示例中分别给出了 GET/POST/PUT/DELETE 的标准写法,建议按场景直接套用。

为什么 curl 请求很慢,有时还超时?

常见原因:DNS 解析慢、服务器响应慢、或网络丢包。curl 默认不设超时,会一直等待。本工具在「高级选项」示例里包含 --connect-timeout(连接超时)和 --max-time(总超时)参数,建议设为 10-30 秒。如果请求大文件,加 --limit-rate 限制带宽。用 -w '%{time_total}' 可查看实际耗时。

curl 支持 HTTPS 吗?为什么我访问 HTTPS 网站报证书错误?

curl 默认支持 HTTPS,但遇到自签名或过期证书时会报错。如果测试环境不要求证书验证,加 -k 或 --insecure 跳过校验(生产环境勿用)。本工具在「跳过证书验证」示例中给出了 -k 的用法。如果需要指定 CA 证书,用 --cacert /path/to/cert.pem。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭