在线cURL转代码工具
把 curl 命令转成 Python、JavaScript、Node、PHP 或 Go 代码、参数自动映射
支持的参数:-X、-H、-d / --data / --data-raw / --data-binary / --data-urlencode / --json、-F、-u、-b、-A、-e、-k、-L、-I、--url。多个 -d 会按 curl 的规则用 & 拼接。其余参数不会静默丢掉,会在结果下方列出来。
关于cURL转代码
从 DevTools 的 Network 面板、接口文档或别人的博客里复制出来的 curl,贴进来直接出可运行的代码。目标语言有五种:Python(requests)、JavaScript(fetch)、Node.js(axios)、PHP(cURL)、Go(net/http)。
映射是照着 curl 的实际行为做的,不是照着「常见写法」猜的。 这决定了几处看着奇怪的输出,但都是故意的:
- 没写 Content-Type 就不补。 curl 用
-d发送时默认是application/x-www-form-urlencoded,很多在线工具会「好心」改成 JSON,结果和服务端的预期对不上。这里照 curl 来,同时在结果下面提醒你:body 是 JSON 就该加-H 'Content-Type: application/json'。 - 多个
-d用&拼接,这是 curl 自己的规则,不是拼错。 -u user:pass直接换成现成的Authorization: Basic ...头,base64 在浏览器里算好,省得每种语言各写一套。-k会生成「关闭证书校验」的写法(Python 的verify=False、PHP 的VERIFYPEER => false),并在结果下面标出风险。这不是推荐写法,只是把你命令里的意图翻译过去。--data-urlencode原样带过去,不在这儿做 URL 编码:编码属于你代码里的职责,工具替你编码后反而看不出原文是什么。
多部分表单(-F)只在 Python 和 PHP 里生成完整代码,JavaScript 给 FormData 骨架,Node 和 Go 需要你补:mime/multipart 的样板代码没有二十行下不来,硬塞进结果反而更难用。
没有映射的参数不会静默丢掉:--http2、-s、-v 这类会列在结果下面,让你知道哪个参数没被翻译。
生成的是「能跑的最小骨架」——没有重试、没有细化错误处理,Python 那份带 timeout=30。真要用在项目里,这些该按你自己的习惯补。
全部在浏览器里拆解和生成,命令里的 token 不会上传。
常见问题
生成的代码和 curl 行为一致吗?
方法、URL、请求头和 body 保持一致。有意为之的差异(比如没有替你补 Content-Type)会列在结果下面。
为什么不把 -d 自动当成 JSON?
curl 用 -d 时默认发 application/x-www-form-urlencoded。擅自改成 JSON,服务端可能不认。
`--data-urlencode` 为什么没有编码?
编码属于你代码的职责。工具替你编码后,原文就看不出来了,反而不好改。
能转文件上传吗?
-F key=@path 在 Python 和 PHP 里会生成完整代码,JavaScript 给 FormData 骨架,Node 和 Go 需要手工补。
命令里的 token 会上传吗?
不会。拆分和生成都在浏览器里完成,不经过服务器。