cURL 转换器

步 1 / 4cURL 转换器

粘贴 cURL 命令

上限为 256 KiB、4,096 个 Shell 分词、200 个请求头和 128 KiB 正文数据。

将一条 POSIX 风格的 cURL 命令转换为浏览器 Fetch、Node.js fetch、Python Requests 或 PHP cURL 代码,全程不会执行请求。转换器可识别常用方法、重复请求头、内联请求正文、URL 编码字段、基本身份验证、Cookie、纯文本 multipart 字段、重定向和压缩。读取文件、使用证书或代理以及写入输出的选项会被阻止;生成代码前,工具会准确展示解析结果。最大 256 KiB 的命令始终留在浏览器内。

工作原理

  1. 1

    粘贴命令

    输入一条 POSIX 风格的 cURL 命令。Shell 引号和转义的续行会在本地解析,不会执行。

  2. 2

    检查请求

    检查 URL、方法、请求头、正文、表单字段、警告以及被阻止的选项。

  3. 3

    选择目标

    生成浏览器 Fetch、Node.js fetch、Python Requests 或 PHP cURL 代码,然后复制或下载。

转换器会保留哪些内容

解析器针对一条 cURL 命令遵循常见的 POSIX Shell 引用规则。它支持 -X/--request、重复的 -H/--header-d/--data/--data-raw--data-urlencode-u/--user-b/--cookie、仅含文本的 -F/--form-L--compressed。转义的续行会在分词前合并。cURL 官方手册指出,请求头和表单选项可以重复使用。本转换器会保留其顺序,并在目标库可能合并同名字段时发出警告。

cURL 输入 生成的对应代码 重要限制
-H 'Name: value' 目标请求头集合 同名字段可能被合并
-d 'a=1' 文本请求正文 多个值使用 & 连接
--data-urlencode 'q=a b' 百分号编码的文本正文 基于文件的形式会被阻止
-F 'name=value' 文本 multipart 字段 @file<file 会被阻止
-L 跟随重定向的选项 重定向安全性仍取决于运行环境

浏览器 Fetch 无法设置某些禁止的请求头,包括 Cookie。存在 Cookie 字符串时,浏览器代码会使用 credentials: "include",并提醒这并非完全等效的替代方式。MDN 将 Fetch描述为浏览器发起网络请求的接口。生成的代码只是起点,CORS、凭据、重定向和服务器策略仍然适用。

安全边界

转换器绝不会执行命令或访问命令中的 URL。读取或上传本地文件、选择客户端证书、配置代理、特殊解析主机或写入传输结果的选项都会被阻止。其中包括正文或请求头中的 @file--upload-file、证书和密钥选项、代理选项,以及输出、配置和跟踪选项。不支持或未知的选项会被阻止,工具不会猜测其含义。

生成的代码中仍可能出现机密信息。保存或分享前,请检查基本身份验证值、Cookie 和 Authorization 请求头。Python 输出遵循 Requests API中有关方法、请求头、身份验证和超时的约定。PHP 输出使用 curl_setopt_arrayPHP 手册说明每个 CURLOPT_* 值如何配置传输句柄。

隐私与限制

解析和代码生成都在此浏览器内的 Alpine 中进行。命令、解析后的请求和代码绝不会发送到我们的服务器,也不会进入漏斗 URL。在四步流程中,命令和所选目标会在当前标签页专用的 IndexedDB 中保留最多两小时;重新开始会删除记录。4,096 个分词、200 个请求头和 128 KiB 正文数据的上限可防止无边界解析。工具仅处理一个 HTTP 或 HTTPS URL,不会模拟完整 Shell 或全部 cURL 选项。

常见问题

不会。它只在本地对文本分词并进行转换,绝不会发送请求、解析主机、连接代理或读取引用的文件。

文件、证书、代理、自定义解析、输出和跟踪选项可能越过纯文本处理的安全边界。转换器会阻止这些选项,而不会假装生成的代码与原命令等效。

浏览器 JavaScript 无法直接设置 Cookie 请求头。浏览器代码使用 credentials: include,为允许的同站或 CORS 请求发送浏览器已保存的 Cookie。

不会。命令只保留在浏览器内存和漏斗流程使用的临时 IndexedDB 中。不过,生成的代码可能包含相同的机密信息,因此请在分享或提交前将其删除。

相关工具

此工具还提供其他语言版本