我试图在我的.net MAUI应用程序中连接到http,并且我通过在info.plist文件中添加以下配置来禁用Apple Transport Security(ATS),如下所示Microsoft文档(来自here):
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
然而,当我尝试使用http与API通信时,仍然会收到以下错误消息:
[0:] An error occurred: 'Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection., NSErrorFailingURLStringKey=http://restapi.adequateshop.com/api/Tourist, NSErrorFailingURLKey=http://restapi.adequateshop.com/api/Tourist, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <27DB8D6A-2EB6-41FE-953E-6FA2BFDBEDDC>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <27DB8D6A-2EB6-41FE-953E-6FA2BFDBEDDC>.<1>, NSUnderlyingError=0x280b9b330 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}}'. Callstack: ''
有办法解决吗?先谢谢你。
1条答案
按热度按时间aor9mmx11#
在该文档页面中指定的密钥仅适用于本地地址,如IP地址或以
.local
结尾的地址,如您在Apple documentation中看到的。从您的错误信息来看,您似乎正在尝试访问一个普通的网址。在这种情况下,你需要的密钥是:
NSAllowsArbitraryLoads
,以便它完全退出ATS。您的完整条目将如下所示:
但是,我不会建议这样做。请尝试在HTTPS上获取您的端点。现在它不应该再昂贵了,这样你的用户和你都将处于危险之中。
如果您确实无法添加HTTPS,请尝试将为您的应用建立的不安全连接限制在单个域。如何做到这一点,可以在Apple文档中找到。
基本上,您的
info.plist
条目现在应该看起来像这样:但再次,我会建议修复服务器首先是安全的。