swift - 在 Alamofire 5 中执行 SSL 固定?

标签 swift alamofire

我正在尝试使用 Alamofire 5 实现 SSL pinning,但在实现过程中遇到了问题。 我无法将 AFsession.request 作为方法调用:.post 被视为额外参数。 我在下面附上了我的代码。

session :

final class AFsession {
    let evaluators = [
        "mydomain.com":
            PinnedCertificatesTrustEvaluator(certificates: [
                Certificates.stackExchange
                ])
    ]
    let session: Session
    private init() {
        session = Session(
            serverTrustManager: ServerTrustManager(evaluators: evaluators)
        )
    }
    private static let shared = AFsession()

static func request(_ convertible: URLRequestConvertible) -> DataRequest {
        return shared.session.request(convertible)
    }
}


struct Certificates {
static let stackExchange =
    Certificates.certificate(filename: "mycert")

private static func certificate(filename: String) -> SecCertificate {
    let filePath = Bundle.main.path(forResource: filename, ofType: "cer")!
    let data = try! Data(contentsOf: URL(fileURLWithPath: filePath))
    let certificate = SecCertificateCreateWithData(nil, data as CFData)!

    return certificate
    }
}

实现:

AF.request(URL, method: .post, parameters: [:], encoding: body, headers: header)
        .responseString { response in
            guard response.result.error == nil else {
                // got an error in getting the data, need to handle it
                print("error calling POST on \(URL)")
                print(response.result.error!)
                return

请求参数有错误。 method:.post 被视为额外参数。 编辑:使用 AF.request 的标准实现可以正常工作 感谢任何帮助

最佳答案

您需要使用通过ServerTrustManager创建的Session来发出请求,它不适用于AF.request

关于swift - 在 Alamofire 5 中执行 SSL 固定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57110280/

相关文章:

swift - TableViewCell中textField的输入滚动后消失

swift - 如何使用 swift 引用文本字段?

swift3 - 在 Swift 3.0 中设置 Alamofire 自定义目标文件名而不是使用 suggestedDownloadDestination

ios - 如何在 Swift 中从包含土耳其字符 (çıüöğ) 的字符串创建 URL

ios - 设置WKWebView scrollView的contentInset导致页面跳转到顶部

ios - UIKeyboardWillShow 通知在物理设备上调用了两次,但在模拟器中没有调用

ios - 如何从 NSUserDefaults 检索和分配 NSDate 对象?

ios - XCode 6.3 Alamofire.swift 文件崩溃

swift - Alamofire:使用字典数组发送 JSON

swift4 : Garbage at end. 错误