API 抛出 401 身份验证错误时读取错误信息
Read error info while API throwing 401 authentication error
我的 API 在用户令牌过期或无效时返回 401 错误,它返回状态代码 401 和有效负载以及如下错误消息和代码。
我想在收到 401 错误时阅读此响应正文。
我可以读取如下状态码
let response = request.task?.response as? HTTPURLResponse
if let statusCode = response?.statusCode, statusCode == 401 {
//Retry with new token
}
如何读取响应正文消息?
谁能帮我解决这个问题?
通过邮递员(查看上面的屏幕截图以供参考)我可以看到消息和 401 代码但是在 Swift 上使用 Alamofire 我如何阅读消息?
编辑:
我正在尝试在请求拦截器中阅读此 body/data,如下所示:
func retry(_ request: Request, for session: Session, dueTo error: Error, completion: @escaping (RetryResult) -> Void) {
let response = request.task?.response as? HTTPURLResponse
if let statusCode = response?.statusCode, statusCode == 401, request.retryCount < retryLimit {
//Refresh token and retry
}
}
HTTPURLResponse
没有 data
,但是 request
,DataRequest
有:
if let dataRequest = request as? DataRequest, let data = request.data {
// parse the data
}
我的 API 在用户令牌过期或无效时返回 401 错误,它返回状态代码 401 和有效负载以及如下错误消息和代码。
我想在收到 401 错误时阅读此响应正文。
我可以读取如下状态码
let response = request.task?.response as? HTTPURLResponse
if let statusCode = response?.statusCode, statusCode == 401 {
//Retry with new token
}
如何读取响应正文消息?
谁能帮我解决这个问题?
通过邮递员(查看上面的屏幕截图以供参考)我可以看到消息和 401 代码但是在 Swift 上使用 Alamofire 我如何阅读消息?
编辑:
我正在尝试在请求拦截器中阅读此 body/data,如下所示:
func retry(_ request: Request, for session: Session, dueTo error: Error, completion: @escaping (RetryResult) -> Void) {
let response = request.task?.response as? HTTPURLResponse
if let statusCode = response?.statusCode, statusCode == 401, request.retryCount < retryLimit {
//Refresh token and retry
}
}
HTTPURLResponse
没有 data
,但是 request
,DataRequest
有:
if let dataRequest = request as? DataRequest, let data = request.data {
// parse the data
}