cURL 转 axios · 免费在线 curl 转 axios
免费在线 cURL 转 axios 工具,把 curl 命令一键转成 axios 请求代码。生成结果是单一配置对象写法(method、url、headers、data 平铺),响应直接取 res.data——axios 会自动解析 JSON,省掉 fetch 那步 .json()。-u 基础认证转成原生的 auth 配置项,不必手算 base64。纯浏览器本地转换,不上传、免登录。
- 粘贴 curl 命令(本页已自动预选 axios)。
- 检查「已忽略参数」提示。
- 复制生成的 axios 代码。
- 安装依赖 npm install axios 后运行。
和 fetch 版本比,代码上省了什么?
省两处:一是响应无需二次解析,res.data 就是解析好的对象;二是 JSON 请求体直接赋给 data 即可,axios 会自动序列化并补 Content-Type,不用 JSON.stringify。另外基础认证有原生 auth 项,不用自己拼 base64 的 Authorization 头。
4xx/5xx 会抛异常吗?
会,这与 fetch 相反。axios 默认对非 2xx 状态码 reject,所以必须用 try/catch 包裹,并从 err.response.status 和 err.response.data 读取错误详情。想改成不抛异常可以配置 validateStatus 返回 true,行为就接近 fetch 了。
生成的代码里 auth 是明文的,安全吗?
auth: { username, password } 只是让 axios 帮你编码成 Authorization 头,凭据本身仍是明文写在代码里。请改成从环境变量或配置中心读取,不要把带真实账号密码的代码提交到仓库。粘贴 curl 时也留意别把线上 token 留在分享出去的代码里。
怎么复用 baseURL 和公共 header?
用 axios.create({ baseURL, headers }) 建实例,把生成代码里的 axios({...}) 换成 instance({...}),URL 只留路径部分。鉴权 token 这类每次都要带的头更适合放到请求拦截器里统一注入,避免每个调用点重复写。
超时和重试怎么加?
axios 有内置的 timeout 配置项(毫秒),直接加 timeout: 10000 即可,比 fetch 的 AbortSignal 简单。curl 的 --max-time 不会自动转换,需自行补上。重试没有内置支持,可以用响应拦截器判断失败后重发,或引入 axios-retry 这类插件。