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

Dialogflow基础实现对话教程报错:Error getaddrinfo ENOTFOUND求助

解决Dialogflow Webhook的Error getaddrinfo ENOTFOUND问题

我之前在调试Dialogflow Webhook时也碰到过一模一样的问题,虽然日志显示Webhook本身运行正常,但这个错误本质是你的代码在调用外部天气API时,域名解析失败了。下面是我总结的排查方向和解决办法:

核心原因拆解及对应方案

  • API域名拼写错误:先仔细核对教程里的天气API URL和你代码中的是否完全一致——哪怕是少个字母、错个符号(比如把weather写成weathr),都会导致域名无法被解析。建议直接复制教程里的API地址替换你代码里的内容再测试。
  • 网络环境限制:如果你的Webhook部署在本地或者受防火墙/代理管控的环境中,可能无法正常访问外部API。可以在Webhook服务器上用curl命令直接测试API连通性:
    curl "https://你的天气API地址?city=Moscow&date=tomorrow"
    
    如果curl也返回相同的ENOTFOUND错误,那就是网络环境的问题,需要调整防火墙规则或者配置代理。
  • HTTP请求库的代理配置缺失:如果用Node.js写的Webhook,像axios、request这类请求库在有代理的环境下需要额外配置。比如用axios的话,要添加代理参数:
    const axios = require('axios');
    const apiRequest = axios.create({
      proxy: {
        host: '你的代理地址',
        port: 你的代理端口
      }
    });
    // 之后用apiRequest发起请求
    apiRequest.get('天气API地址')
      .then(res => {/* 处理响应 */})
      .catch(err => {/* 捕获错误 */});
    
  • API服务本身不可用:虽然概率较低,但可以直接在浏览器里访问天气API的地址,确认服务是否正常返回数据。如果API本身挂了,也会导致域名解析或请求失败。

额外排查小技巧

  1. 查看Webhook的详细日志,定位到抛出错误的具体代码行——这样能快速确认是不是在调用天气API的那一步出了问题。
  2. 如果Webhook部署在云服务(比如Google Cloud Functions),检查云服务的网络权限,确保允许出站请求到天气API的域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:58:43