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

Node.js用https.request发起GET请求AVWX API出现ECONNRESET错误

问题根因

你遇到的ECONNRESET错误核心有两个直接原因:

  • Node.js 原生https.request方法创建请求对象后,必须手动调用.end()方法才能实际发送请求,你当前代码未调用该方法,导致连接一直处于挂起状态,远端服务超时后主动断开连接,触发连接重置错误
  • 未给请求对象绑定error事件监听,导致连接异常时直接抛出未处理错误导致进程崩溃

修复代码

替换为如下代码即可正常发起请求:

const https = require('https');

const req = https.request({
    hostname: 'avwx.rest',
    port: 443,
    path: '/api/metar/KJFK',
    method: 'GET',
    headers: {
        'Authorization': '替换为你的有效AVWX接口令牌',
        // 新增User-Agent头,避免服务商拦截无标识的请求
        'User-Agent': 'Node.js AVWX Client'
    },
}, res => {
    console.log(`响应状态码: ${res.statusCode}`);
    // 接收响应数据
    res.on('data', chunk => {
        process.stdout.write(chunk);
    });
    // 响应接收完成回调
    res.on('end', () => {
        console.log('\n请求处理完成');
    });
});

// 绑定请求错误监听,避免进程直接崩溃
req.on('error', err => {
    console.error('请求异常: ', err);
});

// 核心:手动发起请求
req.end();

其他排查点

如果修改后仍有错误,可以按顺序排查:

  • 确认你的Authorization令牌有效且未过期,拥有对应接口的调用权限
  • 先用Postman、curl等工具直接调用该接口,确认接口本身可访问,排除本地网络、防火墙、代理拦截的问题
  • 若本地使用网络代理,需要给https.request额外配置代理参数,否则请求会被拦截
  • 升级Node.js到16.x以上的LTS版本,避免旧版本TLS协议支持不完善导致的连接异常

内容的提问来源于stack exchange,提问作者Viriato

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:12:00