У меня есть метод, который возвращает Single<(HTTPURLResponse, Any)>
, выполняющий вызов веб-службы.
Этот вызов возвращает 409 по нескольким причинам, и эта причина передается как JSON в ответе. Я знаю, что JSON находится в атрибуте данных объекта DataResponse, но я хотел бы иметь его в AFError, которую я передаю при возникновении ошибки. Я хочу отобразить конкретное сообщение об ошибке c 409, связанное с ответом JSON пользователю, чтобы он мог понять, что произошло.
Как я мог это сделать?
Я искал это в Stackoverflow, а также на github Alamofire, но не смог найти никакой помощи в моем случае.
return Single<(HTTPURLResponse, Any)>.create(subscribe: { single in
let request = self.sessionManager.request(completeURL, method: httpMethod, parameters: params, encoding: encoding, headers: headers)
request.validate().responseJSON(completionHandler: { (response) in
let result = response.result
switch result {
case let .success(value): single(.success((response.response!, value)))
case let .failure(error): single(.error(error))
}
})
return Disposables.create { request.cancel() }
})
Я работаю с Alamofire 4.9.1