无法访问 Alamofire 请求正文
Can't access Alamofire Request body
我在从服务器请求时遇到问题,一切正常
突然 Alamofire.request 无法访问 responseJSON 并且无法访问函数体和它 returns ,我该怎么办?
我在 navigationController 中使用了多个 Alamofire 请求,但在发出两三个请求后会发生这种情况!
我真的有麻烦了,请帮帮我!
此代码无法执行
let group = DispatchGroup()
group.enter()
Alamofire.request(url, method: .get, parameters: nil,
encoding:
JSONEncoding.default, headers: header as? HTTPHeaders)
.responseJSON { (response) in
if response.result.isSuccess{
if let response = response.result.value {
let json = JSON(response)
self.updateAnswers(json: json)
print(json.arrayValue)
group.leave()
}
}
}
如果不成功,您应该深入研究并查看返回的错误。您甚至可能想查看响应主体(如果它是开发服务器,它可能会在响应主体中提供一些有用的错误消息)。
let group = DispatchGroup()
group.enter()
Alamofire.request(...)
.responseJSON { response in
defer { group.leave() }
switch response.result {
case .failure(let error):
print(error)
print(response.response ?? "no HTTPURLResponse")
if let data = response.data {
if let string = String(data: data, encoding: .utf8) {
print(string)
} else {
print(data as NSData)
}
} else {
print("no data")
}
case .success(let json):
print(json)
}
}
顺便说一下,我建议将 leave
调用移到任何 if
/switch
语句之外,因为无论是否成功与否。
但是,归根结底,只有开始仔细查看返回的错误是什么,您才能诊断出问题。
我在从服务器请求时遇到问题,一切正常 突然 Alamofire.request 无法访问 responseJSON 并且无法访问函数体和它 returns ,我该怎么办? 我在 navigationController 中使用了多个 Alamofire 请求,但在发出两三个请求后会发生这种情况! 我真的有麻烦了,请帮帮我!
此代码无法执行
let group = DispatchGroup()
group.enter()
Alamofire.request(url, method: .get, parameters: nil,
encoding:
JSONEncoding.default, headers: header as? HTTPHeaders)
.responseJSON { (response) in
if response.result.isSuccess{
if let response = response.result.value {
let json = JSON(response)
self.updateAnswers(json: json)
print(json.arrayValue)
group.leave()
}
}
}
如果不成功,您应该深入研究并查看返回的错误。您甚至可能想查看响应主体(如果它是开发服务器,它可能会在响应主体中提供一些有用的错误消息)。
let group = DispatchGroup()
group.enter()
Alamofire.request(...)
.responseJSON { response in
defer { group.leave() }
switch response.result {
case .failure(let error):
print(error)
print(response.response ?? "no HTTPURLResponse")
if let data = response.data {
if let string = String(data: data, encoding: .utf8) {
print(string)
} else {
print(data as NSData)
}
} else {
print("no data")
}
case .success(let json):
print(json)
}
}
顺便说一下,我建议将 leave
调用移到任何 if
/switch
语句之外,因为无论是否成功与否。
但是,归根结底,只有开始仔细查看返回的错误是什么,您才能诊断出问题。