Как внедрить самозаверяющие сертификаты в Alamofire?

Я пишу быстрое приложение с самозаверяющим обменом данными с сервером сертификатов. В качестве сетевой библиотеки я хочу использовать Alamofire. Однако Alamofire не поддерживает самозаверяющие сертификаты.

Можно ли реализовать эту функцию легко и как?

2 ответа

Решение

Эта функция еще не поддерживается Alamofire. Скорее всего, он будет добавлен сообществом, но эта работа еще не была представлена ​​проекту. Если вы хотите внести свой вклад в эту функцию, во что бы то ни стало раскошлите репо и отправьте запрос на извлечение.

Если вы хотите узнать, как реализовать эту функцию самостоятельно, я бы посоветовал вам ознакомиться с закреплением SSL и проверкой TLS на iOS. Вы также можете просмотреть исходный код в AFNetworking, чтобы понять, как он может быть реализован.

Если у вас нет времени для самостоятельного создания этой функции, я предлагаю вам использовать AFNetworking в своем приложении Swift. AFNetworking прекрасно совместим со Swift и поддерживает проверку TLS.

Alamofire теперь можно настроить следующим образом:

let TollerantAlamofire={ ()->Alamofire.Manager in
    let policies:[String:ServerTrustPolicy]=[
        "www.mydemoserver.it": .DisableEvaluation
    ]

    let manager=Alamofire.Manager(serverTrustPolicyManager:ServerTrustPolicyManager(policies:policies))

    return manager

}()

Позже, когда вам нужно будет сделать запрос, просто используйте ваш настроенный экземпляр следующим образом:

var req:Request?
req=TollerantAlamofire
            .request(method, url, parameters: params)
Другие вопросы по тегам