尝试使用swift从自签名服务器获取数据,用于iOS应用程序开发

尝试使用swift从自签名服务器获取数据,用于iOS应用程序开发,ios,swift,ssl,alamofire,Ios,Swift,Ssl,Alamofire,首先,我尝试了info.plist方法,使用 <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>service.medimetry.dev</key> <dict> <key>NSRequir

首先,我尝试了info.plist方法,使用

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>service.medimetry.dev</key>
        <dict>
            <key>NSRequiresCertificateTransparency</key>
            <false/>
            <key>NSThirdPartyExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <false/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <true/>
        </dict>
    </dict>
</dict>
但同样的,这种反应 2017-08-03 16:29:34.369747+0530提醒系统[5364:433698][]nw_coretls_回调_握手_消息_block_invoke_3 tls_握手_continue:[-9812] 2017-08-03 16:29:34.369提醒系统[5364:433712]NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813) 请求:可选() 答复:无 结果:失败 数据:

我在这个问题上花了几个小时,请告诉我我做错了什么。上述代码中的任何修复,或任何其他方法,在投入生产时,我将拥有所有正确的服务器,但只需要在调试模式下找到解决方法。 在阿拉莫菲尔,我试过。另外,如果有简单的方法使用justHTTP pod。
对于服务器,我使用的是开启安全标志的laravel代客泊车。

只需在您的plist中添加这些密钥即可

<key>NSIncludesSubdomains</key> <true/> 
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> 
<key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> 
n包括多个域
NSTemporary ExceptionalLowsInSecureHttpLoads
NSTemporaryExceptionMinimumTLSvVersion TLSv1.1

它应该适用于自签名证书

只需在plist中添加这些密钥即可

<key>NSIncludesSubdomains</key> <true/> 
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> 
<key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> 
n包括多个域
NSTemporary ExceptionalLowsInSecureHttpLoads
NSTemporaryExceptionMinimumTLSvVersion TLSv1.1

而且它应该适用于自签名证书

尝试将NSIncludesubDomains添加到您的plistit中。它将位于dict中,其他密钥已尝试但不起作用,将再次尝试计时。此外,这种方法还必须在swift本机函数上使用,甚至使用POD。项目中任何涉及互联网的内容,包括POD。这是我的podfile
platform:ios,'9.0'目标'提醒系统'do use#u frameworks!#用于提醒系统的pod pod“Alamofire”,“~>4.4”结束
除了,这只是我正在从视图启动上述方法的核心项目。加载它自己尝试将包含的域添加到您的plistit中。它将位于dict中,其他键已经尝试过,但不起作用,将尝试再次计时。此外,这种方法还必须在swift本机函数上使用,甚至使用POD。项目中任何涉及互联网的内容,包括POD。这是我的podfile
platform:ios,'9.0'目标'提醒系统'do use#u frameworks!#提醒系统pod'Alamofire',“~>4.4”end
除此之外,这只是我从viewDidLoad启动上述方法的核心项目,它本身不起作用,而且我能够在emulator的浏览器中打开页面。它还提示我SSL证书可以将url粘贴到这里吗?如果您正在使用,它不是本地主机或IP url。它的外部DNS,如果我们对此URL采取例外,本地URL将不起作用,但这不是localhost:)不起作用,而且我可以在emulator的浏览器中打开页面。它还提示我SSL证书。您可以将URL粘贴到此处吗?如果您正在使用,它不是localhost或IP URL。它的外部DNS,如果我们对此URL采取例外,本地URL将不起作用,但这不是本地主机:)
<key>NSIncludesSubdomains</key> <true/> 
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> 
<key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string>