How to handle error for this server call when the server is not available or is down?
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)
}
}
It returns an object, so when I store the result in response variable then say print(response.result) it prints the response string
Please help.
You can handle it via fetching http status code 503. This means that server is not available.
Try switching response.response?.statusCode
. If the code is 503, the server is unavailable. Note that if there are any errors, statusCode
might not be available, so handle any nil
s appropriately.
I can't undertand what you are trying to do exactly, don’t know your entire code.
self.client is an object of what Class? What self.client.create method returns? URLResponse?
Anyway, you can try:
if let response = self.response as? HTTPURLResponse{
if response.statusCode == 503{
//server not available
}
}
After your self.client.create
method.