cURL 转代码

Web 工具

把 cURL 命令转成 Python、JavaScript、PHP、Go 等多语言请求代码,完整保留鉴权头、Cookie 与请求体,适合生成 API 调用示例。可保留超时、代理与重定向参数,生成的代码可直接运行。支持从浏览器复制为 cURL 后一键转换。转换结果可一键复制。生成的代码片段可直接运行。

就绪
cURL 命令
0 行
Python 代码
代码将在这里显示...
0 行

关于 cURL 转代码

从浏览器开发者工具或文档里复制来的 curl 命令很方便调试,但要把它搬进代码就得逐项翻译方法、URL、请求头和请求体。本工具在浏览器本地解析 curl 命令,把它转换成多种语言的等价请求代码,如 JavaScript fetch、Python requests、Node、PHP 等,自动还原 -H 头、-d 数据、-X 方法和 cookie。所有处理均在浏览器本地完成,无需安装任何软件,它适合把从文档或开发者工具复制来的 curl 快速搬进项目代码,省去逐项翻译请求头与请求体的麻烦。转换后建议再核对一次请求头是否被完整还原,尤其是多值头与自定义头;把命令搬进项目代码时可顺手把其中的临时令牌替换为配置项,避免凭证硬编码进仓库,也方便后续在不同环境之间统一管理。

排查接口问题时,往往先在命令行里用手工请求确认了一遍,能通则要把这条命令固化成代码。手工转写容易漏掉请求头:命令行里带了鉴权头、内容类型与自定义头,转成代码时漏一个就变成「本地能通、代码里报错」,而这类差异通常要花不少时间才能定位。自动转换的价值就在于把这些容易遗漏的细节一并搬过去。 转换原理是解析命令行参数,识别方法、地址、头部、数据与认证选项,再按目标语言的请求库生成等价代码。需要注意的是语义等价不等于完全等价:不同语言的请求库在默认行为上有差异,例如是否自动跟随重定向、是否默认校验证书、超时与连接复用策略等,命令行工具的默认值通常比其他库更宽松,因此生成的代码需要根据业务需求显式设置这些选项。 使用要点:转写后先核对三个容易出错的地方——请求方法是否被正确推断(带数据的请求默认可能是表单编码而不是 JSON)、内容类型头是否与数据格式匹配、以及多值头部是否被正确保留。其次检查数据体的引号与转义:命令行里的引号经过多层解析后可能与原文不同,尤其是含特殊字符的 JSON,生成代码时应确认字符串完整无损。最后,把敏感值替换为从环境变量读取,不要直接把令牌留在代码里。 边界与限制:命令行支持的某些选项在目标语言里没有直接对应,转换结果可能只保留主要行为而丢掉边缘参数,涉及文件上传、分块传输与代理设置时应逐项核对。反向转换(代码转命令行)同样会失真,因为库的默认值与命令行默认值不同。此外生成代码不应作为调试产物的长期归宿,定位完成后应整理成符合项目规范的封装,而不是把一次性脚本堆进生产代码。 数据与隐私:命令行历史本身就是泄露渠道,带令牌的命令会留在历史记录与进程列表中。本工具在浏览器内完成转换,不上传命令内容;转换后请立即把令牌替换为环境变量引用,并考虑清理命令行历史。

实现原理

转换解析命令行参数并映射到目标语言的请求库。语义等价不等于完全等价:命令行工具通常不校验证书、自动跟随重定向,而多数库默认相反;命令行里的引号经过多层解析,含特殊字符的请求体在转换后可能已经变形。因此转换结果必须逐项核对默认行为。

输入curl -k https://self-signed/ -L
输出命令行等价于「不校验证书 + 自动跟随重定向」;生成到多数语言时需显式设置这两项,否则行为不同

使用方法

  1. 打开「cURL 转代码」
  2. 输入或粘贴待处理的内容
  3. 根据需要调整输出选项
  4. 点击「运行」按钮,结果实时显示
  5. 复制或导出结果

使用场景

  • 抓包转代码 — 把开发者工具里"复制为 cURL"的请求一键转成项目所用语言的代码。
  • 文档落地 — 把 API 文档给的 curl 示例转成 fetch 或 requests,直接放进业务代码。
  • 跨语言迁移 — 在不同技术栈间复用同一请求,按需切换 Python、Node、PHP 版本。
  • 请求复刻 — 准确还原带认证头、表单或 JSON 体的复杂请求,避免手抄出错。
  • 教学示例 — 把 curl 命令并排展示成多语言写法,帮团队理解请求结构。

常见问题

支持哪些 curl 选项?

常用的 -X 方法、-H 请求头、-d/--data 请求体、--data-urlencode、-u 基础认证、-b cookie、-F 表单上传等都会被解析并映射到目标语言的对应写法。

转成的代码能直接运行吗?

大多数情况下可以,但涉及文件上传、特殊认证或环境变量时可能需要微调。生成的是等价骨架,建议运行前核对头部和数据是否完整。

-d 的数据会自动判断类型吗?

会尽量识别:JSON 体会设为 application/json,键值对则按表单编码。若 curl 显式带了 Content-Type 头,会以该头为准。

能转 Windows 下的 curl 命令吗?

可以,但要注意 Windows 命令行用脱字符续行、引号规则也不同,粘贴时尽量整理成一行;本工具按通用 curl 语法解析,类 Unix 写法兼容性最好。

会泄露我命令里的密钥吗?

不会。解析完全在你的浏览器本地进行,命令里的 token、密码等不会被发送或保存,但生成的代码会原样包含这些值,分享前请自行脱敏。

转换出来的代码报错,但命令行里是同一条命令?

差异多来自默认行为:命令行工具通常不校验证书、自动跟随重定向,而多数语言的请求库默认相反;同时命令行里的引号经过多层解析,含特殊字符的请求体在转换后可能已经变形。排查方法是先用最小请求(去掉自定义头与请求体)确认连通性,再逐项加回并比对,而不是一次性对照整段代码,这样能快速定位是哪一项引入的差异。

请求头里带令牌,转换时需要特别处理吗?

需要,而且这一步最容易被忽略。命令行里的令牌会留在历史记录与进程列表中,转换后的代码若保留明文令牌,同样会随代码进入版本库。正确做法是把令牌改为从环境变量读取,并在转换后立即清理命令行历史;若令牌已经进入过公共渠道或版本库,应尽快在服务端轮换,而不是仅仅删除那行代码。

转换出来的代码请求失败了?

先核对三处:curl 里的引号是否在复制时丢失(shell 引号转义丢失最常见);请求头是否包含必要的 Content-Type;目标服务是否需要 Cookie 或 token。工具忠实转译命令,命令本身有问题时转换结果同样有问题。

广告