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

我的.NET MAUI安卓应用无法访问网络?求排查建议

解决.NET MAUI安卓模拟器无法访问localhost API的问题

问题核心

安卓模拟器里的localhost或127.0.0.1指向模拟器自身系统,而非运行后端API的电脑主机,所以Windows上能正常访问的https://localhost:7239,在模拟器里找不到对应服务。

具体解决步骤

方法1:替换为电脑的局域网IP

  • 找到电脑的局域网IPv4地址:Windows按Win+R输入cmd,执行ipconfig,在“以太网适配器”或“无线局域网适配器”下找到IPv4地址(比如192.168.3.105)
  • 修改代码中的URL:
    var result = await client.GetStringAsync("https://192.168.3.105:7239/products/");
    
  • 补充:确保你的API服务绑定到0.0.0.0或该局域网IP,否则会拒绝外部访问。ASP.NET Core项目可以在launchSettings.json里把applicationUrl改成https://0.0.0.0:7239;http://0.0.0.0:5239

方法2:用安卓模拟器专属回环地址

如果用的是Android Studio自带的模拟器,直接用10.0.2.2代替localhost:

var result = await client.GetStringAsync("https://10.0.2.2:7239/products/");

这个地址是安卓模拟器官方定义的,专门用来映射主机的localhost。

额外必查项

  • 跨域配置:如果API是ASP.NET Core,必须允许跨域请求,否则会被拦截。在Program.cs中添加:

    builder.Services.AddCors(options =>
    {
        options.AddPolicy("AllowEmulator", policy =>
        {
            policy.WithOrigins("http://10.0.2.2:7239", "https://192.168.3.105:7239") // 替换成你的实际地址
                  .AllowAnyMethod()
                  .AllowAnyHeader();
        });
    });
    
    app.UseCors("AllowEmulator");
    

    新手可以先改用AllowAnyOrigin()的宽松配置测试,确认可用后再缩小范围。

  • 防火墙放行:检查电脑防火墙是否允许7239端口的入站连接,临时关闭防火墙测试,没问题后再添加对应端口的允许规则。

  • HTTPS证书问题:自签名HTTPS证书在模拟器里会被视为不安全,导致连接失败。可以先改用HTTP测试(把URL里的https改成http),后续再处理证书安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:50:33