Как обработать ошибку в swift, когда сервер недоступен? - PullRequest
0 голосов
/ 08 мая 2019

Как обработать ошибку для этого вызова сервера, когда сервер недоступен или не работает?

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), он печатает строку ответа

Пожалуйста, помогите.

Ответы [ 3 ]

0 голосов
/ 08 мая 2019

Попробуйте переключиться response.response?.statusCode.Если код 503, сервер недоступен.Обратите внимание, что если есть какие-либо ошибки, statusCode может быть недоступен, поэтому обрабатывайте любые nil соответственно.

0 голосов
/ 08 мая 2019

Я не могу выполнить то, что вы пытаетесь сделать точно, не знаю весь ваш код.

self.client является объектом какого класса?Какой метод self.client.create возвращает?URLResponse?

В любом случае, вы можете попробовать:

if let response = self.response as? HTTPURLResponse{
    if response.statusCode == 503{
        //server not available
    }
}

После вашего self.client.create метода.

0 голосов
/ 08 мая 2019

Вы можете справиться с этим путем получения http-кода состояния 503. Это означает, что сервер недоступен.

...