cURL 转 Fetch / Axios / Python 在线工具
在线生成和解析 cURL 请求,并将接口调用转换为 Fetch、Axios 和 Python requests 代码。
功能特点
- 根据方法、URL、Headers 和 Body 生成 cURL
- 解析已有 cURL 的请求方法、参数、认证和请求体
- 区分 Shell 引号、文件上传、Cookie、重定向、CORS 和证书参数,不把命令生成当作请求成功
- 转换为 Fetch、Axios 和 Python requests 调用代码,并保留目标运行时限制说明
使用方法
- 粘贴 cURL 或填写 URL、方法、Headers 和 Body
- 检查认证信息和请求参数是否已经脱敏
- 复制 cURL 或目标语言代码到项目和调试工具
示例输入
GET 查询参数
curl 'https://api.example.com/users?page=2&limit=20'适合复现分页、筛选和排序接口,先确认 URL 查询参数是否被正确编码。
JSON POST 请求
curl -X POST 'https://api.example.com/users' -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' -d '{"name":"Alice"}'适合生成可复制到终端或文档中的 cURL 命令。
multipart 文件上传
curl -X POST 'https://api.example.com/avatar' -H 'Authorization: Bearer <TOKEN>' -F 'user_id=123' -F 'file=@./avatar.png'适合复现文件上传接口;文件路径只在本地终端有效,浏览器 Fetch 需要改用 FormData。
解析已有 cURL
curl -X GET 'https://api.example.com/users?page=1' -H 'Authorization: Bearer <TOKEN>'适合把命令拆回方法、URL、Headers 和 Body,再继续编辑或交给 AI 分析。
Shell 引号与环境变量
TOKEN='replace-me' curl --url 'https://api.example.com/search?q=hello world' -H "Authorization: Bearer $TOKEN"适合检查空格、引号和环境变量展开;bash、PowerShell 与 CMD 的写法要分别验证。
重定向与证书参数
curl -L --max-time 10 --cacert ./ca.pem 'https://api.example.com/health'这些参数会改变终端行为或信任链;生成命令不等于目标接口已成功,也不能用 -k 掩盖证书问题。
示例输出
GET 查询参数
Method: GET;URL: https://api.example.com/users;Query: page=2, limit=20JSON POST 请求
Method: POST;Content-Type: application/json;Header: Authorization: Bearer <TOKEN>;Body: {"name":"Alice"}multipart 文件上传
Method: POST;multipart fields: user_id=123, file=@./avatar.png解析已有 cURL
Method: GET;URL: https://api.example.com/users?page=1;Header: Authorization: Bearer <TOKEN>Shell 引号与环境变量
Shell:TOKEN='replace-me';URL 含空格并用引号包裹;Authorization 使用目标 Shell 的变量展开重定向与证书参数
参数:-L 跟随重定向;--max-time 10;--cacert ./ca.pem;不代表目标接口已成功
常见错误
- bash、zsh、PowerShell 和 Windows CMD 的引号、换行符和环境变量语法不同,命令不能总是直接跨平台复制。
- 浏览器 Fetch 受到 CORS、预检请求、Cookie SameSite 和凭据模式限制,cURL 成功不代表浏览器一定成功。
- multipart 文件上传需要使用 -F;把文件路径放进 JSON 或 -d 中不会上传文件。
- Authorization、Cookie、X-API-Key、签名参数和内网地址复制前应先脱敏。
- GET 请求带 Body 的兼容性较差,应确认服务端和客户端都支持。
- cURL 在终端成功不代表浏览器 Fetch 成功,仍要检查 CORS、Cookie、预检和凭据模式。
- -L、--max-time、--cacert 和 -k 会影响重定向、超时和证书信任;不能把命令行参数当作服务端成功证明。
适用场景
- GET 查询参数排查
- JSON POST 调试
- 文件上传复现
- 前后端联调
- 问题复现命令
- 接口文档示例
实操检查
生成时核对方法、头和正文
生成模式按方法、URL、逐行 Headers,以及 JSON 或 multipart 字段组合 cURL;Header 按第一个冒号分隔,正文中的冒号仍属于值的一部分,应检查生成命令是否保留原意。
解析器覆盖常用参数,不等于完整 Shell 解释
当前解析路径识别 -X、-H、-d、--data-raw、-F 和第一个 URL,并回填生成表单;复杂 Shell 变量、命令替换、重定向和未覆盖的 cURL 参数需要在目标 Shell 中人工复核。
页面专属核验
使用前与操作中
- 先确定方法、完整 URL、Headers 和 Body 的边界,再选择 JSON 或 multipart 表达方式。
- 解析已有 cURL 时只把已支持的参数当作已还原内容,Shell 变量、命令替换和重定向要人工检查。
- 使用 AI 分析请求或转换代码前,移除 Authorization、Cookie、签名和内部地址。
结果出来后
- 生成命令中的方法、URL、Header、Content-Type 和 Body 是否与原请求完全对应?
- Shell 引号、换行、JSON 转义和 multipart 文件字段在目标终端中是否可执行?
- 请求是否仍需在测试环境验证状态码、响应体、重试和幂等性,而不是以命令生成成功为准?
相关工具
- HTTP Headers 解析:解析 HTTP Headers,并用 AI 分析认证方式、风险和 API 调试线索
- JSON 工具:统一处理 JSON 格式化、校验、树形查看、Schema、CSV 转换、AI 响应分析和 JSON 修复
- URL 编码与解析:统一处理 URL Encode/Decode、Percent Encoding、URL 解析构建、Query String 和 Punycode
- HTTP 状态码:查询 HTTP 状态码含义、分类和常见排查方向
工具边界
- 工具只解析和生成命令,不会替你访问目标 API。
- 转换结果不能绕过浏览器 CORS、Cookie SameSite、代理或证书限制。
- 文件路径、环境变量和 Shell 语法必须在目标运行环境重新确认。
与相似工具的区别
- HTTP Headers 解析:cURL Builder 生成完整方法、URL、头和请求体;Headers 工具专门审查字段语义,不处理 Shell 命令引用。
安全与兼容性
- 解析和生成在浏览器本地完成,工具不会发出网络请求;运行命令前要替换占位 Token 并确认目标主机。
- Shell 引号、@file 路径和环境变量会在终端求值;不要运行来源不明的命令,也不要把凭据写进历史记录。
下一步排查
- 先解析 cURL,确认方法、URL、Headers 和 Body。
- 到 Headers 工具检查 Authorization、Cookie、Content-Type 和缓存头。
- 再用 HTTP 状态码或 AI API 分析判断 4xx/5xx 原因。
常见问题
cURL 转 Fetch 后为什么请求结果不同?
重点检查浏览器跨域限制、自动携带的 Cookie、Headers、重定向和 Body 编码。命令行权限不等于浏览器权限。
cURL、Fetch、Axios 和 Python requests 有什么区别?
cURL 适合终端复现,Fetch 适合浏览器和原生 JavaScript,Axios 提供更方便的拦截器和默认处理,Python requests 适合脚本和后端任务;转换后仍需检查超时、代理、证书和错误处理。
为什么上传文件的 -F 不能直接转成 JSON?
-F 表示 multipart/form-data,文件和字段由表单边界编码;Fetch 应使用 FormData,Python requests 应使用 files 参数,不能把本地路径当作普通字符串发送。
转换前需要隐藏哪些内容?
至少隐藏 Authorization、Cookie、X-API-Key、签名参数和内网地址;转换只需要保留字段结构和占位符。
为什么 cURL 命令复制到 PowerShell 后失败?
PowerShell 的变量、引号、换行和转义规则与 bash/zsh 不同;应按目标 Shell 重写,并检查 URL 空格、JSON 引号和 Header 值是否被重新解释。