无法访问 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 语句之外,因为无论是否成功与否。

但是,归根结底,只有开始仔细查看返回的错误是什么,您才能诊断出问题。