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

Xamarin Android访问本地ESP32服务报No route to host异常如何解决?

问题1:导致No route to host异常的具体原因

该异常属于底层网络连通性错误,发生在HTTP请求正式发送前,因此你配置的HttpClient超时不会生效,常见原因如下:

  • 设备网络隔离:Android设备与ESP32未接入同一局域网,或路由器开启了AP隔离功能,禁止了局域网内设备之间的通信
  • 权限缺失:Xamarin Android应用未申请网络相关权限,系统直接拦截了请求
  • 明文请求被拦截:Android 9(API 28)及以上系统默认禁止所有HTTP明文请求,你访问的是http协议地址,未配置网络安全规则的情况下会被系统直接阻断
  • 服务端异常:ESP32的Web服务未正常启动、IP地址配置错误、端口被占用或设备防火墙拦截了请求
问题2:Xamarin Android原生应用正确访问本地局域网服务的方法

按以下步骤配置即可:

1. 配置应用权限与网络安全规则

首先在Properties/AndroidManifest.xml中添加必要的网络权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

如果要访问HTTP明文地址,需要添加网络安全配置:
在Resources/xml目录下新建network_security_config.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <!-- 允许访问ESP32的本地明文地址 -->
        <domain includeSubdomains="false">192.168.0.5</domain>
    </domain-config>
</network-security-config>

再在AndroidManifest.xml的application节点中添加配置引用:

<application ... android:networkSecurityConfig="@xml/network_security_config">
    ...
</application>

2. 验证基础连通性

先在Android设备自带的浏览器中输入http://192.168.0.5/sensors,确认可以正常返回数据,排除ESP32服务异常、IP错误、局域网不通的问题。

3. 优化HttpClient使用逻辑

不要使用GetAwaiter().GetResult()的同步阻塞写法,容易引发主线程死锁,建议使用异步写法,同时HttpClient尽量复用单例,避免频繁创建实例导致的资源浪费,参考代码如下:

// 建议将HttpClient声明为静态单例,不要每次请求都新建
private static readonly HttpClient client = new HttpClient()
{
    Timeout = TimeSpan.FromSeconds(10)
};

// 异步请求方法
public async Task<string> GetSensorsDataAsync()
{
    try
    {
        Uri uri = new Uri("http://192.168.0.5/sensors");
        HttpResponseMessage response = await client.GetAsync(uri);
        if (response.IsSuccessStatusCode)
        {
            return await response.Content.ReadAsStringAsync();
        }
        return string.Empty;
    }
    catch (HttpRequestException ex)
    {
        // 处理网络异常
        return string.Empty;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 09:36:07