如何使用 Alamofire 读取错误请求的 json 数据(状态码 400)
Posted
技术标签:
【中文标题】如何使用 Alamofire 读取错误请求的 json 数据(状态码 400)【英文标题】:How to read json data of a bad request (status code 400) using Alamofire 【发布时间】:2016-03-29 03:26:31 【问题描述】:我正在从终端本地调用 Rest API。如下所示:
http -v -f --timeout=60 GET 'http://localhost:8080/api/v1/public/users/signin?email=myemail@email.com&password=mypassword'
它正在返回以下输出:
GET /api/v1/public/users/signin?email=myemail@email.com&password=mypassword HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: localhost:8080
User-Agent: HTTPie/0.8.0
HTTP/1.1 400 Bad Request
Content-Type: application/json
Date: Mon, 28 Mar 2016 16:59:08 GMT
Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Sun, 27- Mar-2016 16:59:13 GMT
Transfer-Encoding: chunked
"debugMessage": "Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - najmul@qianalysis.com, rememberMe=true] did not match the expected credentials.Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - najmul@qianalysis.com, rememberMe=true] did not match the expected credentials.: The subject was expected to be true, but was false",
"errorCode": "INCORRECT_CREDENTIALS",
"logId": "50a695c1a81e0542",
"stackTrace": "org.niopack.r.....
现在我想使用 Alamofire 读取这个 JSON 数据。我尝试使用以下方式使用 responseJSON 序列化器:
Alamofire.request(method, urlString, parameters: parameters, encoding: .URL, headers: cookieHeader)
.validate()
.responseJSON
alamofireResponse in
let jsonData = alamofireResponse.result.value
但是我得到的 jsonData 为零。如果你在这里,你会做什么?
谢谢。
【问题讨论】:
【参考方案1】:对我来说,删除 validate()
让我看到了请求失败的原因。由于某种原因validate
失败时,响应的数据没有被解析。
【讨论】:
截至 2021 年 4 月仍然如此以上是关于如何使用 Alamofire 读取错误请求的 json 数据(状态码 400)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中使用 Alamofire 读取本地 JSON
如何在 Alamofire 请求 swift 3 上发出警报