cURL 转代码
把 cURL 命令转成 Python、Go、JavaScript、Rust 等 49 种语言或格式的请求代码,也能输出原始 HTTP 报文、HAR 和 JSON。
cURL 转代码是什么
把浏览器开发者工具里「Copy as cURL」复制的命令,直接转成 Python、Go、JavaScript、Java、Rust 等 49 种语言或格式的请求代码。多行命令、反斜杠续行、文件上传、Cookie 和各种 curl 参数都能吃,转换在浏览器本地完成,命令不会上传到任何服务器。
所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。
怎么用cURL 转代码
- 打开浏览器开发者工具的网络面板,右键你要转换的那条请求(下图第 ① 步)
- 在菜单里选「复制」,再选「以 cURL (bash) 格式复制」(下图第 ②③ 步)。Windows 上千万别选它上面的 cURL (cmd)——那是 cmd 的 ^ 续行语法,本工具解析不了
- 把整段命令粘进左边输入框,多行和行尾的反斜杠都不用处理
- 右边选目标语言。常用的 10 种在下拉下面平铺成按钮,其余按语言族分组,也能直接在搜索框里输语言名
- 点开「解析出的请求」核对方法、地址、查询参数、请求头和请求体类型,确认工具理解的就是你要的那个请求
- 点输出框右上角的复制按钮取走代码,或者下载成对应扩展名的文件

示例
输入
curl 'https://api.example.com/v1/orders?status=paid&page=1' -H 'x-api-key: demo'输出
import requests
headers = {
'x-api-key': 'demo',
}
params = {
'status': 'paid',
'page': '1',
}
response = requests.get('https://api.example.com/v1/orders', params=params, headers=headers)
查询参数被拆成 params,请求头单独成段;换成 POST 时 --data-raw 的内容会被拆成 json_data 或 data
常见问题
转换过程会上传我的 curl 命令吗?
不会。解析用的是编译成 WebAssembly 的 shell 语法树,第一次打开要下载约 1.5 MB 的语法文件,之后走浏览器缓存,命令内容不离开这台电脑。
Windows 的 cmd 风格 curl 能转吗?
单行写法可以。但 cmd 用 ^ 续行、PowerShell 用反引号续行,这两种续行符不认,请粘 bash 风格(行尾反斜杠)或者把换行去掉写成一行。
为什么没有 GraphQL 和 gRPC 选项?
这里转的是 HTTP 请求本身。GraphQL 就是一条 POST 到 /graphql 的请求,用任意语言选项都能转出来;gRPC 不是 HTTP 请求文本,转不了。
能反向把 Python 代码变成 curl 吗?
不能。反向解析各语言代码要逐语言写语法树解析,容错极差。站内的 API 测试器支持把 curl、PowerShell、fetch 和 Java Map 解析成请求并直接发出去,需要反向时用它。
同一个 curl 转出来,各语言的方法名大小写为什么不一样?
curl 自己不区分大小写,各语言客户端库有各自习惯:Python requests 用小写的 post,Java 用枚举,Go 用 http.MethodPost。生成结果按目标语言的习惯写,语义一致。
小提示
- curl 的 -d 不带 Content-Type 时实际按表单发送,所以生成的代码里多出一个表单类型声明不是工具错了,那正是 curl 的行为
- 选中 Python 且请求体是 JSON 时,输出末尾会多两行注释,说明 requests 的 json= 参数不会和原始报文逐字节一致;要严格一致就把注释里的 data= 那行恢复回来
- 黄色提示里列的是无法 100% 转换的参数,比如 --compressed,以及 header 全小写可能是 HTTP/2 请求的提醒。这些在目标语言里通常有等价写法,但工具不替你猜