You need to enable JavaScript to run this app. Dart连接Heroku部署的GRPC服务报SocketException如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Dart连接Heroku部署的GRPC服务报SocketException如何解决

问题解决步骤

报错信息中Failed host lookup: 'https://appname.herokuapp.com'已经明确了根因:你将带https://协议头的完整URL填入了gRPC客户端的host参数,系统会将整个字符串作为域名进行DNS解析,自然无法找到对应主机。

1. 修正Dart客户端配置

  • 移除host字段的协议头,仅填写纯域名:appname.herokuapp.com,不要加https://、http://前缀
  • 端口固定填写443,Heroku对外仅开放80(HTTP)和443(HTTPS)端口,gRPC over TLS默认使用443端口
  • 配置正确的TLS凭证,不要使用不安全的明文连接,示例配置如下:
final grpcChannel = ClientChannel(
  'appname.herokuapp.com', // 仅保留纯域名
  port: 443,
  options: ChannelOptions(
    credentials: ChannelCredentials.secure(), // 开启TLS验证,适配Heroku的HTTPS证书
  ),
);

2. 确认Heroku服务端配置

  • NodeJS gRPC服务监听的端口不要硬编码,必须使用Heroku注入的环境变量process.env.PORT,Heroku会将外部443端口的请求自动转发到该端口
  • 确认服务端开启了TLS兼容的HTTP/2支持,Heroku的HTTPS路由原生支持gRPC所需的HTTP/2协议

3. 兜底排查项

  • 检查域名拼写是否正确,你问题中提到的https://api.appname.come存在拼写错误(come应为com),避免类似笔误
  • 确认测试设备网络正常,无DNS拦截、代理类软件干扰,可先在设备浏览器访问对应域名确认可正常连通

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 21:06:08