cURL 转 Fetch / Axios / Python 在线工具

在线生成和解析 cURL 请求,并将接口调用转换为 Fetch、Axios 和 Python requests 代码。

功能特点

  • 根据方法、URL、Headers 和 Body 生成 cURL
  • 解析已有 cURL 的请求方法、参数、认证和请求体
  • 区分 Shell 引号、文件上传、Cookie、重定向、CORS 和证书参数,不把命令生成当作请求成功
  • 转换为 Fetch、Axios 和 Python requests 调用代码,并保留目标运行时限制说明

使用方法

  1. 粘贴 cURL 或填写 URL、方法、Headers 和 Body
  2. 检查认证信息和请求参数是否已经脱敏
  3. 复制 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=20
  • JSON 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 路径和环境变量会在终端求值;不要运行来源不明的命令,也不要把凭据写进历史记录。

下一步排查

  1. 先解析 cURL,确认方法、URL、Headers 和 Body。
  2. 到 Headers 工具检查 Authorization、Cookie、Content-Type 和缓存头。
  3. 再用 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 值是否被重新解释。