You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

axios-curlirize未在控制台打印代理配置的curl请求问题

解决axios-curlirize不输出代理配置的问题

axios-curlirize默认不会把axios请求中的代理配置转换成curl命令的代理参数,得手动扩展它的回调逻辑补上这部分内容。

具体实现方法

通过自定义curlirize的onSuccess和onError回调,在生成curl命令后,检查请求配置里的proxy字段,手动添加curl的代理参数:

import axios from 'axios';
import curlirize from 'axios-curlirize';

// 初始化curlirize并自定义回调
curlirize(axios, {
  onSuccess: (result) => {
    let curlCmd = result.curl;
    const { proxy } = result.config;

    if (proxy) {
      // 拼接代理地址,带认证的话加上用户名密码
      let proxyAddr = `${proxy.host}:${proxy.port}`;
      if (proxy.auth) {
        proxyAddr = `${proxy.auth.username}:${proxy.auth.password}@${proxyAddr}`;
      }
      // 将代理参数插入到curl命令中
      curlCmd = curlCmd.replace('curl -X', `curl -x http://${proxyAddr} -X`);
    }

    console.log(curlCmd);
  },
  onError: (err) => {
    let curlCmd = err.curl;
    const { proxy } = err.config;

    if (proxy) {
      let proxyAddr = `${proxy.host}:${proxy.port}`;
      if (proxy.auth) {
        proxyAddr = `${proxy.auth.username}:${proxy.auth.password}@${proxyAddr}`;
      }
      curlCmd = curlCmd.replace('curl -X', `curl -x http://${proxyAddr} -X`);
    }

    console.error(curlCmd);
  }
});

说明

  • 上述代码会自动识别axios请求配置中的proxy对象,把它转换成curl的-x(等价于--proxy)参数
  • 如果代理需要认证,会自动拼接用户名:密码@代理地址:端口的格式
  • 注意axios的proxy配置格式要符合以下结构:
    {
      proxy: {
        host: '你的代理地址',
        port: 代理端口,
        auth: {
          username: '代理用户名',
          password: '代理密码'
        }
      }
    }
    

内容的提问来源于stack exchange,提问作者syed kumail abbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:34:58