Alamofire: время ожидания не изменяется для SessionManager в зависимости от конфигурации - PullRequest
0 голосов
/ 17 октября 2018

Вот мой код, пытающийся изменить длительность тайм-аута при настройке моего SessionManager:

private var defaultSessionManager: Alamofire.SessionManager = {
    let config = URLSessionConfiguration.default
    config.httpMaximumConnectionsPerHost = 10
    config.timeoutIntervalForRequest = TimeInterval(120)
    return Alamofire.SessionManager(configuration: config)
}()

Однако тайм-аут для запроса всегда составляет 60 секунд (здесь приведен краткий обзор скриншота из утилиты Netfox для iOS).):

Netfox screenshot of a request

Я также попытался настроить timeoutIntervalForResource безуспешно.
Это неправильный способ настройки продолжительности тайм-аута длязапрос через SessionManager?если да, то как мне это сделать

1 Ответ

0 голосов
/ 17 октября 2018

Вам нужно установить оба значения timeoutIntervalForRequest и timeoutIntervalForResource, чтобы они работали как положено.Вот то, что я использую в настоящее время,

extension SessionManager {

    /// A `SessionManager` to have a request timeout of 2 minutes.
    static let customDelayed: SessionManager = {
        let secondsInOneMinute = 60
        let numberOfMinutesForTimeout = 2
        let timoutInterval = TimeInterval(numberOfMinutesForTimeout * secondsInOneMinute)

        let configuration = URLSessionConfiguration.default
        configuration.timeoutIntervalForRequest = timoutInterval
        configuration.timeoutIntervalForResource = timoutInterval
        return SessionManager(configuration: configuration)
    }()
}
...