curl 转代码
把 curl 命令解析成结构化请求,并生成 fetch、axios、Python requests、Go net/http、PHP cURL、Java HttpClient、C# HttpClient 代码,无法识别的选项会单独列出警告。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
解析结果
POSThttps://api.example.com/usersJSON2生成的代码
const response = await fetch("https://api.example.com/users", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
},
body: "{\"name\":\"Ada\",\"role\":\"admin\"}",
});
const data = await response.json();
console.log(data);这个工具能做什么
- 从浏览器开发者工具里复制一条 curl(Copy as cURL),一键换成 fetch、axios、Python requests、Go、PHP、Java 或 C# 的可运行代码。
- 对接第三方 API 时先拿 curl 验证请求能通,再转成项目里使用的语言,避免手抄请求头和请求体出错。
- 学习不同 HTTP 客户端的写法:同一请求七种语言的对照,比翻文档更直观。
- 排查「代码发出的请求和 curl 结果不一样」:先看解析出的请求方法、地址、请求体类型和请求头数量是否与预期一致。
示例
输入
curl -X POST https://api.example.com/users -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"name":"Ada","role":"admin"}'输出
const response = await fetch("https://api.example.com/users", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
},
body: "{\"name\":\"Ada\",\"role\":\"admin\"}",
});
const data = await response.json();
console.log(data);请求体被识别为 JSON,所以最后用 response.json() 解析;-H 里没有 Content-Type 时会按原始文本处理,改用 response.text()。
常见问题
哪些 curl 选项能识别?
支持 -X/--request、-H/--header、-d/--data 系列、-F/--form、-u/--user(Basic 认证)、-b/--cookie、-G/--get、-L 与 -k。不认识的选项不会静默丢掉,会单独列在「无法解析的选项」里,方便你确认影响。
生成代码里的密钥怎么办?
工具会把 -H 里的 Authorization 等请求头原样写进代码,方便你直接跑通,但这也意味着密钥会出现在代码和复制记录里。粘贴真实凭据前请确认环境可信,转出的代码提交前记得替换成环境变量。
-k 和 --compressed 转过去了吗?
没有等价选项。工具会明确提示:-k(跳过证书校验)在标准 HTTP 客户端里通常要额外配置,--compressed 多数客户端默认就会协商压缩,所以生成的代码里不会出现,需要时手动补上。
为什么生成的代码里 URL 和请求体多了一层反斜杠?
那是字符串转义,不是内容变了。原始 JSON 里的双引号在 JS 字符串中必须写成 \",粘贴到编辑器里执行时就是原始的 {"name":"Ada"}。用单引号包裹的 shell 命令不会引入额外的转义。
命令会上传到服务器吗?
不会。curl 的切词、解析和代码生成全是本地字符串处理,页面不发任何网络请求,断网也能用。
关键词:curlcurl 转代码fetchaxiosrequestsnet/httpphp curlhttpclient命令转换code generator