小编tea*_*uit的帖子

Alamofire带有自签名证书/ ServerTrustPolicy

我想使用Alamofire通过带有自签名证书的https连接与我的服务器通信.我的环境在localhost上运行.我试过连接,但是响应一直都是这样的:

Success: false
Response String: nil
Run Code Online (Sandbox Code Playgroud)

我用以下代码完成了它:

import Foundation
import UIKit
import Alamofire

class MessageView: UITableViewController {

    let defaultManager: Alamofire.Manager = {
        let serverTrustPolicies: [String: ServerTrustPolicy] = [
            "localhost": .DisableEvaluation
        ]

        let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
        configuration.HTTPAdditionalHeaders = Alamofire.Manager.defaultHTTPHeaders

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

    override func viewDidLoad() {
        super.viewDidLoad()

        defaultManager
            .request(.GET, "https://localhost:3443/message")
            .responseJSON { _, _, result in
                print("Success: \(result.isSuccess)")
                print("Response String: \(result.value)")
            }
    }

}
Run Code Online (Sandbox Code Playgroud)

我用这行bash创建了服务器端证书:

openssl req -x509 -nodes -days 999 -newkey rsa:2048 -keyout server.key …
Run Code Online (Sandbox Code Playgroud)

https ios swift alamofire

21
推荐指数
2
解决办法
1万
查看次数

标签 统计

alamofire ×1

https ×1

ios ×1

swift ×1