跳到正文
马克工具箱

cURL 转代码

粘贴 curl 命令(比如从浏览器开发者工具复制的),得到可以直接运行的等效代码。请求头、JSON 请求体、表单上传和认证信息都会保留,命令不会被执行或上传。

在浏览器本地运行,输入的内容和文件都不会上传

在 Chrome 或 Edge 开发者工具的「网络」面板中右键某个请求,选择「复制 → 以 cURL 格式复制」(bash 或 cmd 均可)。

使用步骤

  1. 粘贴 curl 命令,或载入示例。
  2. 选择 JavaScript fetch、Node.js axios、Python requests 或 Go。
  3. 复制生成的代码到项目中。

参数说明

支持的参数
-X、-H、-d / --data-raw / --data-binary / --data-urlencode、--json、-F、-u、-b、-A、-e、-G、-I、-L、-k、--compressed,短参数、长参数和 --参数=值 写法都可以。-s、-v、-o 等只影响输出的参数会被忽略。
JSON 请求体
Content-Type 为 JSON 的请求体会转成对象字面量(例如 Python 中的 json=payload),方便修改。
重定向
curl 不加 -L 时不跟随重定向,生成的代码保持一致,例如 Python 中的 allow_redirects=False。

示例

这条从浏览器里复制出来的命令:

curl -X POST https://api.example.com/v1/users \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer TOKEN' \
  -d '{"name":"Ada","age":36}'

用 fetch 会变成:

const response = await fetch("https://api.example.com/v1/users", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer TOKEN",
  },
  body: JSON.stringify({
    "name": "Ada",
    "age": 36
  }),
  redirect: 'manual',
});

用 Python requests 则是:

response = requests.post("https://api.example.com/v1/users", headers=headers, json=payload, allow_redirects=False)

在 Python 里,headers 中不再包含 Content-Type,因为 json= 参数会自动设置它。redirect: 'manual' 和 allow_redirects=False 保持了 curl 默认不跟随重定向的行为。

常见问题

怎么从浏览器复制 curl 命令?

打开开发者工具,进入「网络」面板,右键某个请求,选择「复制 → 以 cURL 格式复制」。bash 和 Windows cmd 两种格式都能识别。

我的 Token 和 Cookie 会被发送出去吗?

不会。命令只在浏览器中解析,不会执行也不会上传。分享生成的代码前记得删掉密钥。

为什么提示参数不支持?

客户端证书、代理等没有简单对应写法的参数不会被转换,删掉后再在代码里手动设置。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具