How to handle error in swift when server is not available?

隐身守侯 提交于 2019-12-14 03:34:14

问题


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 nils 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!