在两次使用相同URL调用loadHeader的每一次中,出现“请求超时”错误。在第一次尝试中,该函数有效,我设法获取并解析了响应。第二,我超时了。第三,它起作用了,第四次又超时了。是关于我的代码还是关于服务器?我尝试等待再尝试,因为它可能是服务器的某些安全协议,但它没有任何改变。
这是错误代码:
FAILURE: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."
这是我的代码:
func loadHeader(url: String){
let parameters = ["foo": "bar"]
Alamofire.request(url, method: .get, parameters: parameters, encoding: JSONEncoding.default)
.validate { request, response, data in
// Custom evaluation closure now includes data (allows you to parse data to dig out error messages if necessary)
return .success
}
.responseJSON {
response in
let json=response.data
self.jsonToObjectHeader(json: json!)
}
}
func jsonToObjectHeader(json:Data){
do{
databases = try JSONDecoder().decode(responseHeader.self,from: json)
if databases.ordersHeader.count == 0 {
let alert = UIAlertView(title: "empty",message: "empty",delegate: nil,cancelButtonTitle: "OK")
alert.show()
}
else {
for i in 0...databases.ordersHeader.count-1 {
myArray2.append(databases.ordersHeader[i].productName!)
}
}
DispatchQueue.main.async {
self.myTableView.reloadData()
self.myTableView.tableFooterView = UIView()
}
//print(databases.ordersHeader[0].companyAddress)
}catch let jsonErr {
print(jsonErr)
}
}
答案 0 :(得分:0)
我添加了
let parameters = ["foo": "bar"]
思考我必须给出函数中的参数。刚刚更新
Alamofire.request(url, method: .get, parameters: parameters, encoding: JSONEncoding.default)
到
Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default)
它解决了问题。如果有人遇到类似情况,则发布此消息。