Http 请求 iOS 11.2 失败
Posted
技术标签:
【中文标题】Http 请求 iOS 11.2 失败【英文标题】:Http Request iOS 11.2 failes 【发布时间】:2018-03-26 15:18:39 【问题描述】:我尝试向我的服务器发出 http 请求以获取 JSON,但每次尝试时都会收到此错误消息。
2018-03-26 16:53:32.477431+0200 S_Buddy[40041:3435695] [] nw_socket_connect 连接失败(fd 8, 172.227.96.127:443 流,pid: 40041,净化 url:https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.xml, tls) : [64] 主机已关闭 2018-03-26 16:53:32.479737+0200 S_Buddy[40041:3435695] TIC TCP 连接失败 [1:0x60400017f5c0]: 3:64 Err(64) 2018-03-26 16:53:32.480346+0200 S_Buddy[40041:3435695] NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,64) 2018-03-26 16:53:32.480465+0200 S_Buddy[40041:3435695] 任务 . HTTP 加载失败(错误代码:-1200 [3:64]) 2018-03-26 16:53:32.480970+0200 S_Buddy[40041:3435696] 任务 . 完成错误 - 代码:-1200 错误域=NSURLErrorDomain 代码=-1200 “发生 SSL 错误,无法与服务器建立安全连接。” UserInfo=_kCFStreamErrorCodeKey=64, NSLocalizedRecoverySuggestion=你想连接到服务器吗?, NSUnderlyingError=0x60000044cae0 错误域=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo=_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=64, _kCFStreamErrorDomain 3, _kCFStreamErrorCodeKey=64, NSLocalizedDescription=发生 SSL 错误,无法与服务器建立安全连接。, NSErrorFailingURLKey=https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.xml?c9911b4d481e6ada019ba2d93f6cf780, NSErrorFailingURLStringKey=https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.xml?c9911b4d481e6ada019ba2d93f6cf780, _kCFStreamErrorDomainKey=3
我的 info.plist 配置是:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>ecb.europa.eu</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTSLVersion</key>
<string>TLSv1.0</string>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
我的 ios 目标是 10,我使用 Swift 4
【问题讨论】:
【参考方案1】:我从网上的类似问题中发现,他们使用了以下密钥,包括一些与您已经使用的不同的密钥:
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<false/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSRequiresCertificateTransparency</key>
<false/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<false/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<true/>
我尚未在您的特定网站上对此进行测试。
【讨论】:
以上是关于Http 请求 iOS 11.2 失败的主要内容,如果未能解决你的问题,请参考以下文章
iOS 上的 React Native Expo 网络请求失败