OpenReplay Logo
12k
12k

curl 转代码转换器

把一条 curl 命令转换为 fetch、Axios、Python、Node.js、Go 或 PHP 代码——实时进行,并在浏览器本地处理。

本地处理

关于此工具

一条 curl 命令是对一个 HTTP 请求的紧凑、经 shell 引用处理的描述:一个 URL、一个可选的方法(-X)、若干请求头(-H)和一个请求体(-d、--data-raw、--json,或 -F multipart 表单字段)。这个转换器完全像 shell 一样对命令进行分词——处理单引号和双引号、反斜杠转义、行续接,以及 ANSI-C $'...' 字符串——然后把这些参数解析为一个规范化的请求,并为六个目标输出地道的客户端代码。

用它在几秒内把粘贴在 API 文档中或从浏览器网络面板复制来的 curl 片段转换为可用的代码。当存在请求体时它会推断为 POST,把 -u 凭据解码为 Authorization: Basic 请求头,对 -G 把 -d 数据移入查询字符串,为 -F 构建 FormData 和 multipart 请求体,并在请求体是 JSON 时打印原生的对象、字典或数组字面量——这样你就得到一个可以直接放进 fetch 调用、requests 脚本、Go net/http 处理器或 PHP curl 代码块中的请求。

一切都在你的浏览器中运行——你的 curl 命令,包括其中任何令牌、cookie 或 Basic 认证凭据,绝不会被上传或发送到服务器。

常见问题

这个转换器支持哪些 curl 参数?

它能处理 -X/--request、-H/--header、-d/--data/--data-raw/--data-binary/--data-urlencode、--json、-F/--form、-u/--user、-b/--cookie、-A/--user-agent、-e/--referer、-I/--head 和 -G。像 -L、--compressed、-k、-s 和 -o 这类仅与传输相关的参数会被记录提示而不予复现,任何无法识别的参数都会被标记为警告,而不会破坏输出。

在没有 -X 参数时,它如何决定 HTTP 方法?

它遵循 curl 自身的规则:方法默认为 GET,但当存在请求体或表单字段时会自动变为 POST。显式的 -X 始终优先,-I 强制为 HEAD,而 -G 会保持方法为 GET,同时把任何数据移入查询字符串。

生成的代码会把 JSON 请求体保留为真正的对象吗?

会。当 Content-Type 为 application/json 且请求体能够干净地解析时,转换器会输出原生字面量——给 fetch 和 Axios 输出 JavaScript 对象,给 Python 输出 dict,给 PHP 输出传给 json_encode 的数组——而不是一个不透明的字符串,从而让请求体便于阅读和编辑。