这个工具做什么
curl 命令转代码工具可以把一条 curl 命令转换成七种可以直接运行的代码:JavaScript fetch、Node.js axios、Python requests、Go net/http、PHP cURL、Java HttpClient 和 C# HttpClient。API 文档、Postman 和浏览器开发者工具都常用 curl 命令描述请求,有了这个工具,就不用再手动改写请求方法、URL、请求头、请求体和认证信息。
解析器专门针对 curl 命令行编写:按 bash 的规则处理引号,能识别 -sSL 这样合并的短选项和 -XPOST 这样紧跟的取值,并保留请求头原来的顺序。
使用方法
- 把 curl 命令粘贴到输入框,或点击「示例」试一试。
- 选择需要的目标语言。
- 复制结果,或下载为源代码文件。
用 -d 发送的请求体会变成表单编码的请求体;--json(或 JSON 类型的 Content-Type)会变成 JSON 请求体,语言支持时会格式化输出;-F 字段会变成带文件上传的 multipart 表单。-u user:password 会转换成对应语言自带的 Basic 认证写法,-k、-L、-m 和 -x 分别对应 TLS 校验、重定向、超时和代理。
示例
下面这条命令带着 Bearer 令牌提交 JSON:
curl https://api.example.com/v1/users \
-H 'Authorization: Bearer TOKEN' \
--json '{"name":"Ada"}'
转成 Python 后是一个 requests.post() 调用,带 headers 字典和 json=json_data;转成 Go 后是一个 http.NewRequest,逐个设置请求头,请求体用字符串 Reader 传入。
小贴士
- 转换出错时,提示会说明问题所在,光标会跳到出错的位置,比如无法识别的选项或没有闭合的引号。
- 命令后面的管道和重定向(
| jq .、> out.json)会被忽略。 - 用
@file引用的文件会在代码运行时读取,请确认路径相对于程序运行目录是正确的。 - 分享链接前请检查敏感信息:分享按钮会把命令放进链接的 # 部分。
常见问题
› curl 命令会被发送到服务器吗?
不会。命令完全在浏览器里解析和转换,其中的令牌、Cookie 和密码都不会离开你的设备。
› 支持哪些 curl 选项?
支持决定请求内容的选项:-X、-H、-d、--data-raw、--data-binary、--data-urlencode、--json、-F、-u、-b、-A、-e、-G、-I、-L、-k、-m、-x、--compressed 和 --url。只影响 curl 自身输出的选项(如 -s、-v、-o、-w)会被接受并忽略。
› 可以粘贴从浏览器开发者工具复制的命令吗?
可以。在「网络」面板里选择「复制为 cURL(bash)」即可。\、^(Windows cmd)和 `(PowerShell)三种续行写法都能识别,单引号、双引号和 $'…' 也都支持。
› 代码无法实现的选项会怎样处理?
生成的代码开头会有一行 Note 注释说明,例如 fetch 无法表达 -k,或者 curl 会读取某个文件而代码没有读取。无法识别的选项会报错,并定位到具体的选项。