Alamofire请求无法绕过ATS

时间:2016-11-15 01:44:13

标签: ios swift alamofire

我正在使用xcode 8.1和Alamofire 4.0.1

我正在尝试向服务器发送请求。服务器具有自签名SSL证书。以下代码就是我现在所拥有的:

let manager: Alamofire.SessionManager = {
    let serverTrustPolicies: [String: ServerTrustPolicy] = [
        "someendpoint:1081": .disableEvaluation
    ]

    let configuration = URLSessionConfiguration.default
    configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders

    return Alamofire.SessionManager(
        configuration: configuration,
        serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
    )
}()

manager.request(endpoint, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON

首先,我遇到错误消息:

  

发生SSL错误,无法与服务器建立安全连接。

然后我通过在plist文件中添加以下内容来覆盖ATS策略以允许任意加载(我知道它很危险,我将它用作临时解决方案)

<key>NSAppTransportSecurity</key>
<dict>
    <!--Include to allow all connections (DANGER)-->
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

我添加plist条目后,它现在提示我错误:

  

此服务器的证书无效。您可能连接到假装是“somenedpoint”的服务器,这可能会使您的机密信息面临风险。

请注意:我不拥有服务器,因此必须在客户端完成所有操作。

我试图调试这个问题2天但没有运气。有人可以帮忙指出我们的问题吗?

0 个答案:

没有答案
相关问题