Unable to connect to API (ECONNREFUSED)

2026年04月07日 20:31 processing

错误信息

Unable to connect to API (ECONNREFUSED)

AI 解决方案

报错分析报告

1.错误翻译


原文:Unable to connect to API (ECONNREFUSED)
译文:无法连接到API(连接被拒绝)

2.原因分析


  • 根本原因:客户端尝试连接的API服务未启动、未在目标端口监听,或网络/防火墙阻断了连接。

  • 发生位置:客户端发起HTTP/TCP连接请求时,操作系统返回ECONNREFUSED(连接被拒绝)错误。
  • 3. 解决方案


    #### 步骤1:验证API服务状态
    确保API服务已启动并监听正确端口(如3000):
    # 检查服务进程(以Node.js为例)
    ps aux | grep node
    # 查看端口占用
    lsof -i :3000  # 替换为你的API端口
    

    #### 步骤2:测试网络连通性
    telnetnc验证端口可达性:

    telnet api.example.com 3000  # 替换为实际域名/IP和端口
    # 或
    nc -zv api.example.com 3000
    

    #### 步骤3:修复代码示例(以Node.js axios为例)
    若服务未启动,先启动服务;若端口错误,修正URL:

    const axios = require('axios');
    
    async function callAPI() {
      try {
        const response = await axios.get('http://localhost:3000/api/data'); // 确保端口/地址正确
        console.log(response.data);
      } catch (error) {
        if (error.code === 'ECONNREFUSED') {
          console.error('API服务未启动或端口错误,请检查服务状态');
        }
      }
    }
    callAPI();
    

    4. 预防措施


  • 最佳实践1:部署API前用systemd/pm2等工具管理服务状态,确保开机自启和健康检查。

  • 最佳实践2:代码中添加连接重试机制(如axios-retry),但需结合超时设置避免无限等待。

  • 推荐工具:用Postman/curl预测试API可达性,用Prometheus监控服务端口监听状态。