Android ConnectException 错误 - EHOSTUNREACH(无路由到主机)错误

标签 android connection google-cloud-functions rx-java retrofit2

我一直在尝试请求 Google Cloud 函数,但返回此错误:

failed to connect to url/address (port X) from /Y (port Z) after 120000ms: isConnected failed: EHOSTUNREACH (No route to host)

详细信息:

  • 它仅在设备使用 3g 连接时发生(wifi 工作正常)
  • 有时会发生
  • 只有部分设备显示此行为

检查云函数,那里没有记录错误。

我正在使用 Retrofit 和 RxJava2,我认为这些是 Android 中唯一可能导致此类错误的代码。

我认为这是 3g 提供商的问题,但我不认为是这种情况,因为我用手机创建了一个热点,连接了我的电脑并使用 Postman 发出了请求并且它工作正常。

通过浏览器请求也能正常工作。

除此之外,我一无所知,因为这似乎是一个完全特定且随机的错误。

感谢所有帮助!

最佳答案

此问题特定于手机的网络服务。 EHOSTUNREACH(没有到主机的路由) 本质上表明它无法建立到达网络的路由。因此,当您收到错误时,3g 连接失败。

我看到那个 IPv6 地址正在使用中。禁用 Android 上的 IPv6 支持并查看问题是否仍然存在会很有用。这在移动网络 > 高级 > 接入点的 APN 协议(protocol)设置中可用。

关于Android ConnectException 错误 - EHOSTUNREACH(无路由到主机)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59076755/

相关文章:

java - 杀死进程和 System.exit(0) 之间的区别;

android - HttpsURLConnection 和间歇性连接

string - 数据库连接字符串参数污染强化问题

删除操作的 Firebase 实时数据库限制

reactjs - 如何从 React 组件中调用 firebase 函数

javascript - 谷歌云功能::无法使用 'require'语句

java - 没有 minDistance 的 Android requestLocationUpdates

android - 默认样式 Jetpack 组合

c - postgres 连接池库

android - 如何从不同的 Activity 中接收对单个 Activity 的多个 Intent ?