curl 命令构建器
可视化拼装 Method / URL / Header / Body / Query,一键生成 POSIX、Windows CMD、PowerShell 与 HTTPie 四种命令
在线 curl 命令生成工具:在左侧表单里选择请求方法、填写 URL、增删请求头、切换 JSON / 表单 / multipart 请求体并追加 Query 参数, 右侧实时生成可直接执行的 curl 命令,并自动处理 macOS/Linux 单引号、Windows CMD 双引号转义与 PowerShell 的 curl 别名陷阱; 另附 HTTPie 等价命令。GET 默认省略 -X、HEAD 使用 -I、multipart 走 -F,全程纯本地构建,不发出任何网络请求。
本工具只生成命令文本,不发送任何请求;生成后复制到终端执行。
请求配置
生成的命令
在左侧填写 URL(必填)后,命令会在这里实时生成
POSIX 版适用于 macOS / Linux / Git Bash / WSL,单引号包裹、反斜杠续行;Windows CMD 版用 ^ 续行、双引号包裹并把内部 " 写成 \"; PowerShell 版必须用 curl.exe(避免命中 Invoke-WebRequest 别名)并用单引号字面量;HTTPie 为等价语义,需另行安装 httpie。
#curl 命令构建器是什么?
curl 命令构建器是一款纯前端的 HTTP 请求命令生成工具。你在表单里选择请求方法(GET / POST / PUT / PATCH / DELETE / HEAD / OPTIONS)、 填写 URL、增删 Header 键值行、选择 JSON / 表单 / multipart 请求体并追加 Query 参数后,页面实时生成对应平台的完整命令文本: POSIX 版(macOS / Linux / Git Bash)、Windows CMD 版、PowerShell 版(curl.exe)以及 HTTPie 等价命令。 生成过程只做字符串拼装与转义,不会向任何服务器发送请求。
curl 常用参数速查
| 参数 | 作用 | 示例 |
|---|---|---|
| -X | 指定请求方法,GET 是默认值可省略 | -X POST |
| -H | 添加请求头,可重复多次 | -H 'Content-Type: application/json' |
| -d | 发送请求体,同时自动把请求切为 POST | -d '{"name":"a"}' |
| -F | 发送 multipart/form-data,值前加 @ 表示上传文件 | -F 'file=@/path/a.pdf' |
| -L | 跟随 3xx 重定向继续请求 | curl -L https://a.com |
| -k | 跳过 HTTPS 证书校验,仅限本地调试 | curl -k https://self-signed.dev |
| -i | 在输出中包含响应头 | curl -i https://a.com |
| -s | 静默模式,不显示进度条与错误信息 | curl -s https://a.com |
| --compressed | 请求压缩传输并自动解压响应 | curl --compressed https://a.com |
Windows 下 curl 的引号坑
POSIX shell 里单引号是「字面量」,内部无需转义;而 Windows CMD 不把单引号当作字符串定界符,整条命令的字符串参数必须用双引号包裹, JSON 里的每一个双引号都要改写成 \" 才能原样传给 curl(curl.exe 按 C 运行时规则解析 \" 为字面双引号)。 另外还有四个高频坑:① .bat 批处理文件里 % 必须写成 %%,交互式 CMD 则不用;② 参数以反斜杠结尾时(如 "C:\dir\")反斜杠会把收尾引号转义掉, 路径结尾建议补一个 \ 或改用正斜杠;③ CMD 的续行符是 ^,且 ^ 之后不能有空格;④ JSON 值里本身带 \"(反斜杠+引号)时,按 CRT 规则反斜杠需双写成 \\\", 此类复杂转义建议直接改用 PowerShell 版(单引号字面量零转义)或 Git Bash。拿不准时可直接复制本页生成的 Windows CMD 版本。
cmd 与 PowerShell 的区别
- 续行符不同:cmd 用 ^,PowerShell 用反引号 `(且必须是行尾最后一个字符)。
- 引号规则不同:cmd 内部双引号写成 \";PowerShell 的单引号字符串是字面量,内部单引号写成两个单引号 '',双引号则原样保留。
- curl 别名陷阱:PowerShell 5.x 里 curl 是 Invoke-WebRequest 的别名,参数体系完全不同,必须显式写 curl.exe 才会调用系统自带的真 curl;PowerShell 7+ 才默认解析为 curl.exe。
- 默认环境:Windows 10 1803 之后的系统自带 curl.exe,老版本需要自行安装或改用 Git Bash / WSL。
POST JSON 完整示例讲解
以本页「POST JSON 带 Bearer」示例生成的 POSIX 命令为例:
curl 'https://api.example.com/v1/orders?dry_run=true' \
-X POST \
-H 'Authorization: Bearer sk-live-xxx' \
-H 'Content-Type: application/json' \
-d '{"name":"测试订单","note":"备注含 \"引号\" 与中文"}' \
-i- 第一行:目标 URL;Query 参数已拼接到 ? 后,整个 URL 用单引号包裹,避免 &、? 被 shell 误解。
- -X POST:显式声明方法(GET 时惯例省略,HEAD 时应改用 -I 而不是 -X HEAD,否则部分服务器会挂起)。
- -H Authorization:携带 Bearer Token;-H Content-Type: application/json 告诉服务器请求体是 JSON。
- -d:请求体原文放在单引号里,JSON 内部的 " 无需额外处理;若不用单引号,就得逐个写成 \"。
- -i:把响应头一并打印出来,调试时便于确认状态码与 Content-Type。
为什么本地构建而不是在线发送?
调试请求里经常出现 Authorization Token、Cookie、API Key、内网地址这类敏感信息。市面上不少「在线发请求」工具会把你的 Header 原文提交到第三方服务器中转, 等于把凭证拱手交出去。本页面是纯静态前端:所有拼装、转义、校验都在你的浏览器内存里完成,不产生任何网络请求,也不写除本地偏好之外的存储; 生成的命令复制到你自己的终端执行,Token 与内网 URL 从始至终不经过任何第三方。
#常见问题 (FAQ)
生成的命令在哪里执行?
按平台复制对应版本:POSIX 版粘贴到 macOS 终端 / iTerm2 / Linux Shell / Git Bash / WSL;Windows CMD 版粘贴到 cmd.exe;PowerShell 版粘贴到 PowerShell 窗口;HTTPie 版需先安装 httpie(pip install httpie 或 brew install httpie)。
Windows 上执行报错怎么办?
最常见原因是复制错了版本:把 POSIX 版(单引号)粘进了 CMD 或 PowerShell。请切换到对应平台 Tab 再复制;PowerShell 里还必须用 curl.exe 开头,写 curl 会命中 Invoke-WebRequest 别名而报参数错误。
multipart 文件路径怎么填?
在字段值前加 @ 表示上传文件,例如 @/Users/me/report.pdf 或 @./a.png(相对当前终端目录);Windows 路径建议写成正斜杠 @C:/dir/a.pdf,避免收尾反斜杠与引号转义冲突。不带 @ 的字段按普通文本上传。
我填的 Token 会被上传吗?
不会。本工具纯本地运行,生成命令的过程不发任何网络请求,配置仅保存在你浏览器的 localStorage 中,清除浏览器数据即可彻底删除。
相关工具推荐
Spine动画编辑器
专业的Spine动画预览和编辑工具,支持多引擎导出
SQL查询优化器
分析SQL查询并提供优化建议
JVM启动参数配置
可视化配置Java虚拟机启动参数,支持内存、GC、性能等选项
代码片段转换
不同编程语言间代码片段转换(如Python↔JavaScript)
IP地址查询
查询IP地址的地理位置、运营商、ASN等信息,支持IPv4和IPv6
JSON转TypeScript接口
根据JSON数据自动生成TypeScript类型定义