.NET MAUI调用ASP.NET Core Web API:Windows正常Android连接失败求助
解决Android端.NET MAUI连接Web API失败的问题
1. 替换主机名为电脑局域网IP地址
Android设备(模拟器/真机)的DNS解析逻辑可能无法识别WebApiCd这类本地主机名,即便浏览器能正常解析。解决步骤:
- 用
ipconfig(Windows)查看电脑的局域网IPv4地址(例如192.168.1.100) - 将API请求地址中的
http://WebApiCd:7134替换为http://你的电脑IP:7134,同时优化请求写法:static async Task LectureAsync2() { client.BaseAddress = new Uri("http://192.168.1.100:7134/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); try { Console.WriteLine("GET 1 Cd"); fich Cds1 = null; // 结合BaseAddress使用相对路径,避免重复写完整URL HttpResponseMessage response = await client.GetAsync("api/Cds/11"); if (response.IsSuccessStatusCode) { Cds1 = await response.Content.ReadAsAsync<fich>(); } else { Console.WriteLine($"请求失败,状态码:{response.StatusCode}"); } Console.WriteLine(Cds1?.CdNom ?? "未获取到数据"); } catch (Exception e) { Console.WriteLine($"异常:{e.Message}\n{e.StackTrace}"); } Console.ReadLine(); }
2. 配置Android网络安全允许明文HTTP请求
Android 9(API级别28)及以上默认拦截明文HTTP请求,若API未使用HTTPS,需添加安全配置:
- 在MAUI项目的
Platforms/Android/Resources/xml目录下创建network_security_config.xml,内容如下:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">你的电脑IP或WebApiCd</domain> </domain-config> </network-security-config> - 打开
Platforms/Android/AndroidManifest.xml,在<application>标签中添加配置引用:<application android:networkSecurityConfig="@xml/network_security_config" ...>
3. 确认INTERNET权限已声明
确保MAUI Android项目已添加网络权限,检查Platforms/Android/AndroidManifest.xml中存在:
<uses-permission android:name="android.permission.INTERNET" />
内容的提问来源于stack exchange,提问作者eric pregnon
相关产品推荐
相关产品推荐

