cURL转代码 - 在线将curl转换为9种语言代码(Fetch/Python/Go/Java等)
🌟 为什么你需要”cURL 转代码”
拿到一条 cURL 命令,可能是同事发的、浏览器开发者工具复制的、接口文档里贴的。你很想在自己的项目里复现这个请求,但项目用的是 Python、Go、Java,不是 bash。手工翻译一条长 curl,要处理引号、转义、Header、Cookie、Auth,既慢又容易抄错。
星点 cURL 转代码 解决的就是这个:把 cURL 命令解析成结构化请求,再生成 JavaScript Fetch、Axios、Python Requests、Go、Java、PHP、C#、Rust、Ruby 共 9 种语言的等价代码。生成的是”可直接运行的最小等价实现”,语言间能力有差异时,无法等价表达的部分会以注释说明,不会强行转换误导你。
🚀 怎么用(详细步骤)
- 打开 cURL 转代码;
- 粘贴 cURL 命令到输入框;
- 选择目标语言;
- 下方生成代码,点击「复制代码」使用。
从哪拿到 cURL 命令
最常用的来源是浏览器开发者工具:打开 Network 面板,右键某个请求,选择「复制 → 以 cURL 格式复制」,即可得到一条完整命令,再粘贴进来转代码。
🌐 9 种语言代码对比
下面是同一条请求(GET https://api.example.com/users?page=2,带一个 Authorization 头)在 9 种语言里的等价形态对比,帮你直观感受工具的输出风格:
| 语言 | 关键写法 | 适合谁 |
|---|---|---|
| JavaScript Fetch | fetch(url, { headers }) | 前端/Node 开发者 |
| Axios | axios.get(url, { headers }) | 用 Axios 的项目 |
| Python Requests | requests.get(url, headers=...) | Python 后端/脚本 |
| Go | http.NewRequest + Client.Do | Go 后端 |
| Java | HttpClient / HttpURLConnection | Java 后端 |
| PHP | curl_init 或 file_get_contents | PHP 后端 |
| C# | HttpClient.GetAsync | .NET 开发者 |
| Rust | reqwest / ureq | Rust 开发者 |
| Ruby | Net::HTTP / Faraday | Ruby 开发者 |
每种语言都按各自的习惯写法组织,粘贴到项目后按需补充导入(import)即可运行。
💡 三个实战示例
示例一:带 JSON Body 的 POST 请求
输入:
curl -X POST https://api.example.com/items \ -H "Content-Type: application/json" \ -d '{"name":"test","qty":1}'选择 Python,会生成使用 requests.post、json= 参数、headers 字典的等价代码;选择 JavaScript,会生成 fetch + JSON.stringify 的写法。
示例二:带 Basic Auth 的请求
输入:
curl -u user:pass https://api.example.com/private工具会正确识别 -u 参数,转换为各语言对应的 Basic Auth 写法(如 Python 的 requests.auth.HTTPBasicAuth、Fetch 的 Authorization: Basic ... 头)。
示例三:带 Cookie 的请求
输入:
curl -b "session=abc123" https://api.example.com/me工具会把 -b 转成目标语言里携带 Cookie 的等价方式。如果目标语言对 Cookie 的表达能力有限(比如需要额外的 Cookie 容器),工具会以注释说明,而不是给你一段跑不通的代码。
💻 各语言代码长什么样
下面用一个带 JSON Body 的 POST 请求为例,展示工具生成的关键片段,帮助你了解每种语言的输出风格:
输入:
curl -X POST https://api.example.com/items \ -H "Content-Type: application/json" \ -d '{"name":"test"}'各语言核心写法如下。
JavaScript Fetch
fetch('https://api.example.com/items', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'test' })})Python Requests
import requests
resp = requests.post( 'https://api.example.com/items', headers={'Content-Type': 'application/json'}, json={'name': 'test'},)Go
req, _ := http.NewRequest("POST", "https://api.example.com/items", body)req.Header.Set("Content-Type", "application/json")resp, err := http.DefaultClient.Do(req)PHP
$ch = curl_init('https://api.example.com/items');curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"test"}');注意这些是示意,工具实际生成的是各语言按自身习惯组织、可直接运行的等价实现,你只需按需补充 import 语句并替换示例中的 URL 与数据。
⚠️ 转换边界:无法等价时它会说实话
语言之间的能力有差异,这是 cURL 转代码最容易被忽略的坑。星点工具的处理方式是诚实:
- 能等价转换的(Cookie、Basic Auth、常见 Header、JSON Body)→ 直接生成正确代码;
- 无法等价表达的(某些语言对 gzip、多部分表单、Cookie 容器的支持差异)→ 以注释明确说明,绝不强行转换。
这比”什么都给你转、转出来却跑不通”要可靠得多。
🔄 与其他工具的联动
- 粘贴 cURL 后想先看清它到底做了什么,用 cURL 解析器 先拆解成 Method、Headers、Body;
- 反过来,在 HTTP 请求测试器 里构造好请求后,可以「复制 cURL」再丢进来转代码;
- 需要从零手写请求时,用 HTTP Header 生成器 先生成标准 Header 文本。
🔧 常见问题(FAQ)
支持哪些语言?
支持 JavaScript Fetch、JavaScript Axios、Python Requests、Go、Java、PHP、C#、Rust、Ruby 共 9 种。生成的代码能直接运行吗?
生成的是最小等价实现,各语言按各自习惯写法组织,粘贴到项目后按需补充导入即可运行。部分能力转不了怎么办?
语言间能力有差异(如 Cookie、gzip、多部分表单),无法等价表达时工具会以注释说明,不会强行转换。cURL 里的引号会影响转换吗?
不会。工具会正确解析单双引号、转义与续行反斜杠,不会因为引号导致字段错乱。能从浏览器直接复制请求转代码吗?
可以。浏览器开发者工具里「复制 → 以 cURL 格式复制」得到的命令可直接粘贴进来转换。生成代码后还要改什么?
一般只需补充语言对应的 import 语句,以及根据项目替换掉示例里的 URL、Token 等占位值。💬 总结
cURL 转代码的价值在于”把命令翻译成你项目能直接用的语言”。需要先拆解理解时用 cURL 解析器,需要反向从请求生成 curl 时用 HTTP 请求转 cURL。
立即体验:访问 cURL 转代码
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!