问题
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.
回答1:
You can handle it via fetching http status code 503. This means that server is not available.
回答2:
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.
回答3:
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.
来源:https://stackoverflow.com/questions/56042998/how-to-handle-error-in-swift-when-server-is-not-available