Как вы реализуете RequestAdapter в Alamofire 5? - PullRequest
0 голосов
/ 17 января 2019

В бета-версии Alamofire 5 SessionManager заменено на Session. Мне интересно, какова теперь процедура назначения RequestAdapter, так как это было var в Alamofire 4, но в Alamofire 5 теперь это константа let. Отсюда следующий код:

var session = Session()
session.adapter = AccessTokenAdapter

выдает ошибку времени компиляции: «Невозможно присвоить свойству:« адаптер »является константой« let »»

Конечной целью является установка пользовательских полей заголовка, таких как токен JWT.

Ответы [ 2 ]

0 голосов
/ 26 июля 2019

Вы должны соответствовать протоколу ' RequestInterceptor ' в вашем классе, который имеет идентичные методы:

Адаптируйте и Повторите как в RequestAdapter и RequestRetrier .

Тогда вы просто передаете его на запрос :

AF.request(urlRequest, interceptor: RequestInterceptor? = nil)
0 голосов
/ 09 апреля 2019

Это работает для меня в последнем Alamofire

func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (AFResult<URLRequest>) -> Void) {
        var modifiedURLRequest = urlRequest
        modifiedURLRequest.setValue("Bearer " + accessToken, forHTTPHeaderField: "Authorization")
        completion(.success(urlRequest))
    }
...