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

使用https.request报connect ETIMEDOUT错误,https.get却正常?

为什么 https.request 超时但 https.get 正常?

核心原因:端口配置错误

你在authOptions里指定了port: '8080',但看你用https.get时的URL是https://a.random.api/a/path?option1=1——这个URL没有带端口,说明目标服务用的是HTTPS默认端口443,而不是8080。强行指定错误端口后,请求连不到正确的服务端口,自然会触发超时(ETIMEDOUT)。

修正方法很简单:要么删掉port字段(让Node.js自动使用HTTPS默认端口443),要么把port改成443(建议用数字类型,比如port: 443,字符串虽能识别但数字更规范)。

修正后的authOptions示例:

let authOptions = {
    hostname: 'a.random.api',
    // 移除port字段,或修改为port: 443
    path: '/a/path?option1=1',
    method: 'GET'
}

其他可能的次要原因(端口修正后仍有问题时排查)

  • 缺少HTTPS专属配置:如果目标服务有特殊TLS证书要求,https.get会自动使用默认TLS配置,而https.request可能需要在options里显式添加rejectUnauthorized、ca等参数(不过你用get正常,大概率不是这个问题)。
  • 参数类型不规范:比如port用了字符串'8080',虽然Node.js会尝试转换,但统一用数字类型能避免潜在解析问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:54:26