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

MAUI Android模拟器无法访问本地API问题求助

解决MAUI Android模拟器无法访问本地API的问题

1. 修正代码中的请求地址

你的代码里仍在使用localhost,需要替换为Android模拟器映射宿主机器的专用地址10.0.2.2,同时注意URL中的括号可能不符合API路由规则(正常接口路由不会带括号),修正后的代码如下:

try
{
    HttpClient client = new();
    // 替换为10.0.2.2并移除URL中的括号
    Uri baseurl = new Uri("http://10.0.2.2:8082/api/Login/GetAllCustomers");
         
    HttpResponseMessage response = await client.GetAsync(baseurl);

    if (response.IsSuccessStatusCode)
    {
        await Navigation.PushAsync(new HomePage());
    }
}
catch (Exception ex)
{
    await this.DisplayAlert("Error", ex.Message, "OK");
}

2. 确保API绑定到可访问的地址

本地API默认可能仅绑定到127.0.0.1,导致模拟器无法访问。需要修改API的启动配置,让它监听所有网卡地址:

  • 在API项目的Program.cs中添加以下代码:
    builder.WebHost.UseUrls("http://0.0.0.0:8082");
    
  • 可通过命令行netstat -ano | findstr :8082检查端口监听地址,确认输出包含0.0.0.0:8082或你的局域网IP。

3. 确认Android网络权限

在MAUI项目的Platforms/Android/AndroidManifest.xml中,确保已添加网络权限:

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

MAUI通常会自动添加,但建议手动验证。

4. 检查宿主机器防火墙

临时关闭Windows防火墙(或添加入站规则允许8082端口),避免防火墙拦截模拟器的请求。

5. 验证模拟器网络连通性

在Android模拟器的内置浏览器中访问http://10.0.2.2:8082/api/Login/GetAllCustomers:

  • 如果浏览器无法访问,说明问题出在API或网络配置,而非MAUI代码;
  • 如果浏览器能正常返回数据,再排查MAUI代码中的其他问题(如HttpClient配置)。

6. 尝试使用局域网IP

若10.0.2.2仍无效,找到宿主机器的局域网IPv4地址(通过ipconfig命令获取),将请求地址替换为:

http://你的局域网IP:8082/api/Login/GetAllCustomers

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:33:22