Flutter真机无法调用.NET Web API问题求助
解决真机Flutter调用.NET Web API失败的问题
替换localhost为电脑局域网IP:模拟器和电脑共享网络栈可访问localhost,但真机必须使用电脑在局域网内的实际IP(如
192.168.1.100),检查Flutter代码里的请求URL是否仍为http://localhost:xxxx,改成局域网IP重试。允许Android明文HTTP请求:若API使用HTTP而非HTTPS,Android 9及以上默认禁止明文流量,需在
AndroidManifest.xml的<application>标签中添加:android:usesCleartextTraffic="true"排查防火墙/杀毒软件拦截:即便添加了入站规则,部分杀毒软件或防火墙仍可能拦截外部设备对电脑端口的请求,临时关闭防火墙/杀毒软件测试,或将.NET Web API进程加入信任列表。
验证网络连通性:在真机上用网络工具APP测试电脑IP+API端口是否能连通(如执行
telnet 192.168.x.x 5000),若不通说明网络层面存在问题,重新检查端口入站规则和Kestrel绑定配置。确认.NET Web API的绑定范围:确保launchSettings.json中Kestrel绑定到
0.0.0.0而非仅localhost,配置示例:"profiles": { "YourApiName": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "http://0.0.0.0:5000;https://0.0.0.0:5001", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } }对比浏览器与APP的请求差异:在Flutter中打印完整的请求URL、请求头,和浏览器中可正常访问的请求做对比,排查是否因请求参数、头信息差异导致失败。
内容的提问来源于stack exchange,提问作者Adil
相关产品推荐
相关产品推荐

