使用Alamofire

时间:2018-02-22 07:55:44

标签: ios swift alamofire nsurlconnection nsurlsession

我正在使用Alamofire向服务器发送请求,但我收到以下错误:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

我的代码命中api

dispatch_async(dispatch_get_main_queue(), { () -> Void in


        let manager = Alamofire.Manager.sharedInstance

        manager.session.configuration.timeoutIntervalForResource = 60

        Alamofire.request(.POST, path, parameters:self.dataDict,encoding: .JSON, headers:headers).responseJSON { (responseData) -> Void in
          if((responseData.result.value) != nil) {
               //code
            }
         })

在网上搜索后,我在NSTransportSecuritySetting -> AllowArbitaryLoads中将info.plist添加到了YES。但仍然得到这个错误 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

尝试这可能有效,因为iOS9要求服务器仅支持TLSv1.2。

添加Info.plist配置的语法如下所示:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>yourserver.com</key>
    <dict>
      <!--Include to allow subdomains-->
      <key>NSIncludesSubdomains</key>
      <true/>
      <!--Include to allow insecure HTTP requests-->
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <!--Include to specify minimum TLS version-->
      <key>NSTemporaryExceptionMinimumTLSVersion</key>
      <string>TLSv1.1</string>
    </dict>
  </dict>
</dict>

iOS 9要求您计划从中请求数据的所有主机使用TLSv1.2 SSL,除非您在应用的Info.plist文件中指定了例外域。