这个工具是什么
cURL 转代码工具把一段 cURL 命令翻译成可读的目标语言代码。常见来源是浏览器开发者工具里的「Copy as cURL」:在 Network 面板右键某个请求复制出来,贴到这里,就能得到等价的 PHP、Python 或 JavaScript 写法,省去手工逐个搬请求头和请求体。
支持 PHP 原生 cURL、PHP Guzzle、Python requests、JavaScript fetch 四种目标。
什么时候用它
- 从浏览器里复制一个带登录态、带复杂请求头的请求,快速拿到可执行的代码骨架。
- 联调接口时先拿到一个能跑的最小示例,确认参数与鉴权方式,再往项目里搬。
- 把后端同事给的 cURL 示例转成自己常用的语言,避免逐个参数对照。
- 检查某个请求到底带了哪些头,比如是不是重复设置了 Content-Type。
- 把 Python 写的调试脚本改成 PHP 版本。
有什么限制
-d @文件名、--json @文件名这类从磁盘读内容的写法无法还原,会在页面上提示出来。- 生成的代码是样板:超时、重试、异常处理都按各语言最常见的写法补了一份最简单的实现,接入项目时需要按规范替换。
- 只识别命令行参数,不解析 shell 变量、管道与
$(...)命令替换的结果。 - Cookie 按字面拼接进请求头,不会从浏览器或 cookie 文件里读取真实值。
- 浏览器 fetch 不支持跳过证书校验,用了
-k的命令会额外给出一段说明而不是直接生成无效代码。
常见问题
Q:为什么生成的 Authorization 头是字面量? A:工具只做静态转换,不会去猜你的令牌从哪来。把那段字符串替换成读配置或环境变量的写法即可。
Q:多个 -d 参数怎么处理?
A:按 curl 的行为用 & 拼成一个请求体,这与实际发出的请求一致。
Q:Guzzle 版本里为什么把 URL 拆成了 base_uri 和路径? A:这是 Guzzle 更常见的组织方式,便于复用同一个客户端实例。如果你更希望保留完整 URL,把两行合并即可。
Q:支持 multipart 上传吗?
A:支持。-F 'file=@/path' 会生成 PHP 的 CURLFile、Python 的 files 或 JavaScript 的 FormData 写法。