Установка timeoutInterval для запроса данных Alamofire - PullRequest
0 голосов
/ 23 апреля 2020

Я создаю пользовательский класс, который берет Alamofire DataRequest в своем инициализаторе. Теперь я хочу добавить timeoutInterval к ​​нему, но я получаю ошибку компиляции

Значение типа 'DataRequest' не имеет члена 'timeoutInterval'

Здесь код:

init(request: DataRequest, timeoutInterval: Double = 10) {
    request.timeoutInterval = timeoutInterval // <- compile error here
    self.request = request
}

Очевидно, что у него нет этого свойства. Но есть ли другой способ указать время ожидания для Alamofire DataRequest таким образом (без использования SessionManager предпочтительно)? У URLRequest есть, так что это должно быть как-то возможно, но я не могу понять, как.

Я знаю, что этот вопрос уже задавался здесь, при переполнении стека, но я не могу найти ответ, который бы подходил этой ситуации. .

1 Ответ

0 голосов
/ 23 апреля 2020

В Alamofire 5.1 мы добавили параметр requestModifier к методу request верхнего уровня, который дает вам доступ к URLRequest, который будет выполняться.

В Alamofire 4 у вас есть несколько Менее элегантные варианты. Один простой способ установить его - использовать RequestAdapter, который будет устанавливать его как часть конвейера запросов. Другой, более сложный вариант, это перейти от метода request верхнего уровня, который принимает отдельные параметры, такие как заголовки, к API, который принимает значение URLRequestConvertible. Таким образом, вы имеете полный контроль над URLRequest s, которые Alamofire выполняет от вашего имени.

...