Как доверять конечной точке iOS swift

Я вызываю конечную точку с самозаверяющим сертификатом ssl. Я пытался добавить это в свой info.plist

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

Но я все еще не могу получить доступ к конечной точке, я продолжаю получать это

NSLocalizedDescription=The certificate for this server is invalid. You might be connecting to a server that is pretending to be “endpoint” which could put your confidential information at risk.

1 ответ

Решение

Вам нужно создать диспетчер сеансов и сказать ему, чтобы отключить оценку ssl на этом сервере.

Что-то вроде этого

static var manager: Alamofire.SessionManager = {
    let serverTrustPolicies: [String: ServerTrustPolicy] = [
        "https://example.com": .disableEvaluation
    ]

    let configuration = URLSessionConfiguration.default
    configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders
    let manager = Alamofire.SessionManager(
        configuration: URLSessionConfiguration.default,
        serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
    )

    return manager
}()

А потом, вместо вызова запроса в Alamofire, вот так

Alamofire.request("https://example.com", method: .get…

Вы называете это в вашем менеджере

manager.request("https://example.com"…
Другие вопросы по тегам