# 将 cURL 转换为代码

粘贴 cURL 命令，即可得到 fetch、Axios、Python requests、Go 或 PHP 版本的同一个请求。不会执行任何内容，也不会发送任何内容。

https://codeknife.dev/zh/curl-zhuanhuan/

## 功能

把 cURL 命令转换为 fetch、Axios、Python requests、Go 或 PHP 的代码。命令只会被当作文本读取：不会执行任何内容，也不会发送请求。

## 使用方法

1. 粘贴 cURL 命令，或拖入文本文件。从浏览器网络面板复制的命令也可以，包括用反斜杠换行的写法。
2. 在**转换为**下选择语言。
3. 复制或下载代码。无法转换的选项会列在代码下方。

## 示例

`curl -u alice:s3cret https://api.example.com/private` 在 fetch 中会变成带有 `Authorization: Basic YWxpY2U6czNjcmV0` 请求头的请求，在 Python 中则是 `auth=("alice", "s3cret")`。

## 须知

- 支持：方法（`-X`）、请求头（`-H`）、数据（`-d`、`--data-raw`、`--data-binary`、`--data-urlencode`、`--json`）、`-G`、基本认证（`-u`）、Cookie（`-b`）、User-Agent（`-A`）和 Referer（`-e`）。
- 同一个请求头给出两次时保留最后一个值。没有 Content-Type 的请求体会像 cURL 那样使用表单类型。
- 文件（`-d @file`）、上传（`-F`）、代理和 TLS 选项不会被转换。它们会被列出，方便你看到代码省略了什么。
- 命令里常常带有令牌和密码，因此这个工具不显示广告，也不会保存你粘贴内容的历史记录或分享链接。

## 我粘贴的命令会怎样处理？

命令会像 shell 那样被拆分成单词（不会被执行），并读取其中的选项：方法、请求头、数据、基本认证和 URL。结果是可以直接粘贴到项目中的代码。像 -s 或 --compressed 这样不改变请求的选项会列在“未转换”中。

## 常见问题

### 这会执行我的命令或发送请求吗？

不会。命令只会被当作文本读取，并在浏览器中转换为代码。不会执行任何内容，也不会发出任何请求。

### 粘贴包含令牌或密码的命令安全吗？

文本只保留在浏览器中，不会发送到我们的服务器，本页面也不显示广告。不过在分享代码之前，请把真实的密钥换成占位符；如果令牌曾粘贴到你不信任的地方，请重新生成。

### 支持哪些选项？

支持方法（-X）、请求头（-H）、数据（-d、--data-raw、--data-binary、--data-urlencode、--json）、-G、基本认证（-u）、Cookie、User-Agent 和 Referer。像 -d @body.json 这样的文件以及表单上传（-F）无法在这里读取，会列在“未转换”中。