我想使用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)