当服务器不可用或已关闭时,如何处理此服务器调用的错误?
func createData(request:Crudpb_CreateRequest, with completion: @escaping (String) -> Void) throws {
DispatchQueue.main.async {
self.response = try! self.client.create(request) // <---- How to handle error for this server call when the server is not available or is down?
completion(self.response.result)
}
}
它返回一个对象,所以当我将结果存储在响应变量中然后说出print(response.result)时,它将打印响应字符串
请帮助。
答案 0 :(得分:0)
您可以通过获取http状态代码503来处理它。这意味着服务器不可用。
答案 1 :(得分:0)
尝试切换response.response?.statusCode
。如果代码是503,则服务器不可用。请注意,如果有任何错误,statusCode
可能不可用,所以请适当处理任何nil
。
答案 2 :(得分:0)
我无法理解您到底想做什么,也不知道您的全部代码。
self.client是什么类的对象?什么self.client.create方法返回? URLResponse?
无论如何,您可以尝试:
if let response = self.response as? HTTPURLResponse{
if response.statusCode == 503{
//server not available
}
}
在您的self.client.create
方法之后。