【发布时间】:2020-03-02 12:50:29
【问题描述】:
我有一个方法可以返回 Single<(HTTPURLResponse, Any)> 调用网络服务。
此调用出于多种原因返回 409,并且此原因在响应中作为 JSON 传递。 我知道 JSON 在 DataResponse 对象的数据属性中,但我希望将它放在发生错误时传递的 AFError 中。我想向用户显示与 JSON 响应相关的特定 409 错误消息,以让他了解发生了什么。
我怎么能这样做?
我在 Stackoverflow 和 Alamofire 的 github 上搜索过,但对我的案例没有任何帮助。
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
【问题讨论】:
-
你可以得到与结果一样的状态码 let statusCode = response.response?.statusCode ?? 0
标签: ios swift alamofire rx-swift