cURL 转 Fetch
将 cURL 转为 Fetch、Python requests 或 Axios 请求代码
请求代码
适用于现代浏览器或 Node.js 18+。浏览器仍受 CORS、Cookie 和受限请求头约束;未加 -L 的跨域重定向可能只返回状态 0。
转换后在这里查看代码;切换格式或响应类型会同步更新结果。
cURL 转 Fetch 的支持范围
支持 -X / --request、-H / --header、--url、-I、-G、-L,以及 --data、--data-raw、--data-binary、--data-urlencode 的字面值。URL 编码按 UTF-8 处理;请求体保留原文,JSON 数字不会被重新解析和舍入。
文件读取、multipart 上传、Shell 变量、命令链、重复请求头和未知参数会明确报错。GET/HEAD 不携带请求体;把数据放进查询参数时使用 -G。
自动模式按 application/json 或 +json 响应头解析 JSON,其余保留为文本;空响应返回 null(Python 为 None)。JSON 模式会对非空的无效 JSON 报错。二进制下载需自行改用 Blob 或字节读取。
完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。
工具说明
将 cURL 转为 JavaScript Fetch、Python requests 或 Node.js Axios 请求代码。响应可以按 Content-Type 自动识别,也可指定 JSON 或文本;空响应返回 null 或 None。复制前可核对 URL、方法、请求头与原始请求体。未知参数、文件输入和 Shell 展开会停止转换并说明原因。工具只生成代码,不执行请求,不上传命令,也不保存草稿。
失败门诊(高频踩坑)
接口返回文本或没有响应内容
原因:即使 HTTP 请求成功,把空响应或普通文本交给 JSON 解析器仍然会报错。
修复:响应头准确的接口可选“自动”,文本接口可选“文本”;空响应返回 null 或 None。只有明确要求非空响应必须是 JSON 时才选择“JSON”。
生产可用片段
编码查询值,保留原有 URL 的参数与片段
text
输入:
curl 'https://api.example.com/search?sort=new#results' -G --data-urlencode 'q=hello world'
方法:GET
URL:https://api.example.com/search?sort=new&q=hello%20world#results
请求体:无
选择 Fetch、Python requests 或 Axios,再选择响应读取方式。常见问题
为什么遇到 @file、-F 或未知参数时会停止转换?
这些参数可能改变请求含义,工具无法完整复现。当前不读取文件或标准输入,不支持 multipart 上传,也不执行 Shell 表达式。请通过 --data 或 --data-raw 提供字面请求体,并明确指定请求头;只有 --data-raw 会把开头的 @ 当作普通字符。
空响应、JSON 与普通文本怎样读取?
生成代码只读取一次响应。空文本返回 null(Python 为 None),包括常规 HEAD 和 204 响应。自动模式解析 application/json 与 +json 媒体类型,其余保留为文本;JSON 模式会对非空的无效 JSON 报错。二进制响应需要改为 Blob 或字节读取。
浏览器 Fetch 能完全复现终端 cURL 吗?
不能。浏览器受 CORS、Cookie 和部分请求头限制。使用 -L 才跟随重定向;未加 -L 时,浏览器跨域重定向可能只暴露状态 0。Python requests 和 Node.js Axios 输出需要先安装对应依赖,运行前应核对目标环境。
粘贴的令牌或命令会保存吗?
命令只保留在当前页面内存中,不上传、不执行、不保存草稿。打开新版页面时会清除旧版转换器在本地存储留下的草稿。复制会把生成代码及其中的凭据写入系统剪贴板。
继续浏览