How to handle error in swift when server is not av

2019-12-16 19:54发布

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.

3条回答
Lonely孤独者°
2楼-- · 2019-12-16 20:03

You can handle it via fetching http status code 503. This means that server is not available.

查看更多
We Are One
3楼-- · 2019-12-16 20:08

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.

查看更多
Fickle 薄情
4楼-- · 2019-12-16 20:09

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.

查看更多
登录 后发表回答