2009-09-17 3 views
0

У меня есть приложение, которое использует веб-службу для получения данных. Прежде чем получать данные из веб-службы, я проверяю наличие сети на устройстве, используя подход, описанный в «Reachabilty». Но что он делает, пинг сервера и в зависимости от ответа он дает статус. Но в моем приложении я хочу показать другое сообщение пользователю в зависимости от сбоя в сети 1. Некоторое время сеть не доступна на устройстве 2. Некоторое время пингуется сервер выключенПроверьте тип сбоя сети на iPhone/iPod

Может ли тело сказать мне как различать эти два типа сбоев.

Благодаря Ashwani

ответ

1

Ну, я думаю, вы могли бы создать экземпляр NSURL с вашим адресом сервера и проверить, если он терпит неудачу с ошибкой, или соединение успешно:

- (NSError*)checkServer{ 
NSError *serverError; 
NSString *command = [NSString stringWithFormat:@"http://192.168.0.1/"]; 

NSURLResponse *response; 

NSURL *pathURL = [NSURL URLWithString:command]; 
NSURLRequest *request = [NSURLRequest requestWithURL:pathURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:5.0]; 
NSData *theData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&serverError]; 

if ([serverError code]) return serverError; 

return nil; 
} 

Edit: Вы могли бы взгляните на Reachability flags, они расскажут вам больше о статусе достижимости сетевого узла.

+0

Thanks Luvieere, Я пробовал этот подход. Но я ищу подход, в котором мы можем получить сетевой статус устройства, если сеть доступна, и только я хочу сделать запрос на удаленный сервер. Любая идея? –

Смежные вопросы