iOS上.NET MAUI启用明文流量无效,HTTP接口请求报错
解决.NET MAUI iOS端ATS限制导致HTTP接口请求失败的问题
问题原因
你添加的NSAllowsLocalNetworking配置仅适用于本地网络请求(比如localhost、局域网IP),而你调用的http://restapi.adequateshop.com/api/Tourist是公网HTTP接口,这个配置无法绕过ATS对公网非HTTPS请求的限制,因此触发报错。
解决方案
根据使用场景选择以下配置方式:
1. 临时允许所有HTTP请求(仅测试环境用)
修改info.plist中的ATS配置,添加NSAllowsArbitraryLoads并设为true:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
注意:这种方式会完全禁用ATS安全检查,生产环境强烈不推荐使用。
2. 仅允许指定域名的HTTP请求(生产环境推荐)
更安全的做法是针对目标域名单独放开限制,添加NSExceptionDomains配置:
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>adequateshop.com</key> <dict> <!-- 包含该域名的所有子域名 --> <key>NSIncludesSubdomains</key> <true/> <!-- 允许该域名的HTTP请求 --> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> </dict>
额外提示
- 配置修改完成后,清理项目并重新构建iOS应用,确保配置生效。
- 如果目标接口支持HTTPS(可尝试访问
https://restapi.adequateshop.com/api/Tourist),优先改用HTTPS请求,无需修改ATS配置,安全性更高。
内容的提问来源于stack exchange,提问作者Ali Alfaraj
相关产品推荐
相关产品推荐

