cURL命令构建器
可视化构建 cURL 命令,支持方法、URL、请求头、查询参数、JSON / 表单 / 原始正文、基本认证 / Bearer 令牌 / API 密钥认证以及超时等字段。为终端、脚本和 CI 复制开箱即用的命令。
检测到广告拦截,导致我们无法展示广告
MiniWebtool 依靠广告收入免费提供服务。如果这个工具帮到了你,欢迎开通 Premium(无广告 + 更快),或将 MiniWebtool.com 加入白名单后刷新页面。
- 或升级 Premium(无广告)
- 允许 MiniWebtool.com 显示广告,然后刷新
cURL命令构建器
curl命令构建器将繁琐的多标志命令转换为引导式的表单。您只需选择 HTTP 方法、粘贴 URL、逐行例举请求头和查询参数(每行一个)、设置请求体并选择身份验证模式 —— 该工具就会为您编写出相应的 curl 命令。终端风格的预览在您输入时会实时更新,这样您在复制命令之前就能看到命令是如何逐步形成的。
该工具完全在浏览器中运行。它不会调用您输入的 URL,也不会存储您的请求头、令牌或请求体。您将获得一个随时可以运行的命令,可以将其粘贴到终端、CI 步骤、Makefile、Postman 导入或错误报告中。
为什么可视化构建器优于手工编写 cURL
⚡ 更快的迭代
编辑一个字段,即可看到整个命令的实时更新。再也不用费心去数反斜杠,也不用去记 -d 是否意味着默认包含 Content-Type。
🛡 正确的引号转义
单引号、双引号、Windows CMD 和 PowerShell 的引号转义都会为您自动处理,包括 Bash 中 '...' 内部的 ' 转义以及 CMD 中的百分号转义。
🔁 一键替换等效请求
可以为 JavaScript fetch、Python requests 和 HTTPie 生成相同的请求 —— 这在向前端或后端同事提供错误复现步骤时非常有用。
如何使用 curl命令构建器
- 选择方法。 GET 用于读取,POST 用于创建,PUT/PATCH 用于更新,DELETE 用于删除,HEAD 仅用于获取请求头,而 OPTIONS 用于向服务器查询某个资源支持哪些方法。
- 输入 URL。 最好输入完整的 URL,例如
https://api.example.com/v1/users。如果省略协议头,构建器会将其自动规范化为https://。 - 列出查询参数。 以
键=值的格式每行输入一个。对于标志(flag)风格的参数,可将值留空。构建器会把它们追加到?后面。 - 列出请求头。 以
请求头名称: 值的格式每行输入一个。如果您没有手动设置,构建器会自动对请求头进行去重,并为 JSON、表单和 XML 请求体自动添加Content-Type。 - 选择请求体类型。 选择 JSON 来粘贴对象,选择 Form 适用于
application/x-www-form-urlencoded字段,选择 Multipart 适用于文件上传(使用name=@/path/to/file),选择 Raw 原样发送字节,或者选择 XML 适用于 SOAP 及类似的 API。 - 设置身份验证。 Basic 适用于
用户名:密码,Bearer 适用于 OAuth 和 JWT 令牌,API 密钥可以放置在请求头(如X-API-Key)中,也可以作为查询参数(如?api_key=...)。 - 添加标志。 切换最常用的 cURL 标志:跟随重定向、请求 gzip、显示响应头、详细模式、静默模式或跳过本地调试的 TLS 检查。
- 选择输出样式。 带有反斜杠换行符的多行样式在脚本中最具可读性;单行最适合复制/粘贴;Windows CMD 使用双引号和双百分号;PowerShell 会显式调用
curl.exe,以免与 PowerShell 本身的别名发生冲突。 - 复制并运行。 点击 复制命令,粘贴到您的终端中,然后检查响应结果。
输出样式说明
多行(默认)将每个标志单独放在一行,并在末尾加上反斜杠。这是您在文档、博客文章和 Shell 脚本中想要的格式,因为它是自上而下阅读的。
curl \
-X POST \
-H 'Content-Type: application/json' \
--data '{"name":"Jesse"}' \
'https://api.example.com/v1/users'
单行用空格连接所有内容 —— 非常适合一次性粘贴到终端、日志消息或聊天会话中。
Windows CMD 将 Bash 风格的单引号转换为双引号(CMD 无法解析单引号),并通过将百分号加倍来进行转义,从而使命令可以在 cmd.exe 或 .bat 文件中逐字运行。
PowerShell 会显式调用 curl.exe,因为在 PowerShell 中 curl 是 Invoke-WebRequest 的别名,而后者的参数语法完全不同。
引号:单引号 vs 双引号
在 Linux 和 macOS Bash 上,单引号是最安全的,因为 Bash 不会扩展其中的变量或反引号。构建器会将值内部的字面 ' 转换为转义序列 '\'',以便外围的单引号依然闭合匹配。
当您希望 Bash 保留转义规则但又能容忍一些在其他情况下很难转义的引号字符时,使用双引号是正确的。构建器会对双引号内部的 $、`、\\ 和 " 进行转义,从而保证值在传输时保持不变。
身份验证模式
Basic 认证会发送 Authorization: Basic base64(user:password)。cURL 标志 -u user:password 会自动为您执行此编码。请务必使用 HTTPS —— 在纯 HTTP 上使用 Basic 认证极易被拦截。
Bearer 令牌(OAuth 2.0、JWT、GitHub 个人访问令牌)会添加 Authorization: Bearer <令牌>。请像对待密码一样对待令牌:如果它泄露到截图、Slack 消息或 CI 日志中,请立即轮换它。
API 密钥可以存在于请求头(X-API-Key、X-RapidAPI-Key)或查询参数(?api_key=...)中。使用请求头通常更安全,因为 URL 通常会被反向代理和浏览器历史记录记录下来。
常用 HTTP 方法一览
- GET — 读取资源。应该是安全且幂等的。
- POST — 创建新资源,或提交不适合 GET 语义的数据。非幂等。
- PUT — 替换已知 URL 处的资源。幂等。
- PATCH — 局部更新。根据 API 的不同,使用 JSON Patch (RFC 6902) 或 Merge Patch (RFC 7396)。
- DELETE — 删除资源。幂等。
- HEAD — 类似于 GET,但服务器仅返回请求头。可用于在不下载请求体的情况下测试缓存新鲜度或内容长度。
- OPTIONS — 向服务器查询允许哪些方法并读取 CORS 元数据。
生成的命令排错
- SSL 证书错误。 仅在面对信任的主机或您自己的本地服务器时才开启
--insecure。对于生产环境调试,建议优先使用--cacert指向正确的 CA 证书包。 - 空响应或卡死。 使用
-v详细模式运行,以查看 TLS 握手和请求头信息。连接步骤(connect)卡死通常意味着服务器无法触达;传输步骤(transfer)卡死意味着服务器接受了请求但处理缓慢。 - 415 Unsupported Media Type(不支持的媒体类型)。 服务器期望不同的
Content-Type。如果您没有设置,构建器会自动为 JSON、表单和 XML 请求体添加正确的值。 - 401 vs 403。 401 意味着凭据缺失或无效(请重新检查 Bearer 令牌);403 意味着凭据有效但用户未被授权(请检查作用域 scope)。
- 413 Payload Too Large(有效载荷过大)。 某些上游服务器会将请求体大小限制在 1–10 MB。可以考虑使用分块上传终点或流式传输。
安全与隐私说明
- 该构建器完全是客户端渲染。没有任何数据会被发送到您输入的 URL;生成的结果仅仅是命令文本。
- 避免粘贴生产环境的令牌。如果必须这样做,请将生成的命令视为敏感数据 —— 切勿将其提交到公共仓库、粘贴到带有机器人的聊天中或附加到公开的问题工单(issue)中。
- 在脚本中优先使用环境变量:写成
-H 'Authorization: Bearer '"$TOKEN"而不是硬编码令牌。先用单引号闭合,然后切入双引号包裹变量,以便 Bash 对其进行扩展。
常见问题解答
- 我可以从 Chrome 开发人员工具(DevTools)中导入 cURL 命令吗?
- 这个构建器的方向正好相反 —— 它是从表单生成 cURL。若要进行反向操作,请从开发人员工具中复制为 cURL,然后使用专用的 cURL 解析工具。
- JSON 请求体需要预先转义吗?
- 不需要。请原样粘贴 JSON 应有的样子。构建器会处理好引号,以便请求体在到达服务器时保持未经修改的原貌。
-d和--data-urlencode有什么区别?-d原样发送请求体字节。--data-urlencode会对每个字段进行百分号编码,这正是浏览器发送 HTML 表单时的方式。构建器对表单(Form)请求体类型使用--data-urlencode,对 JSON / 原始 / XML 类型使用--data。- 如何上传文件?
- 选择 Multipart form-data 并添加一行,例如
avatar=@/Users/jesse/photo.png。@符号会告知 cURL 去读取该文件的内容。 - 为什么 cURL 报告 “Argument list too long”(参数列表过长)?
- 请求体过大,超出了 Shell 的 argv 限制。应当改为通过文件传递请求体,例如使用
--data @body.json。 - 该工具支持 HTTP/2 和 HTTP/3 吗?
- 如果您的本地 cURL 在编译时加入了正确的库,cURL 本身是通过
--http2和--http3支持这两者的。您可以手动将这两个标志中的任意一个添加到生成的命令中。
引用此内容、页面或工具为:
"cURL命令构建器" 于 https://MiniWebtool.com/zh-cn//,来自 MiniWebtool,https://MiniWebtool.com/
由 miniwebtool 团队提供。更新日期:2026-05-21