Как найти сервер достижимый с помощью кода Reachability в iPhone? - PullRequest
6 голосов
/ 28 апреля 2011


У меня клиент-сервер говорит "http://abc.com", и я хочу проверить, отвечает этот сервер или нет.
Как проверить это с помощью кода Reachability от Apple?
Как я вижу этот код, но нев состоянии получить, где написать URL моего клиента, чтобы проверить это.
Пожалуйста, предложите мне.

Ответы [ 2 ]

9 голосов
/ 28 апреля 2011

Вот синхронный пример. Возможно, вы захотите сделать это асинхронно, но это поможет вам быстро проверить.

Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"];
//return [netReach currentReachabilityStatus];
NetworkStatus netStatus = [netReach currentReachabilityStatus];
if (netStatus==ReachableViaWiFi) {
    [ViewManager showStatus:@"Reachable (WiFi)!"];
} else if(netStatus==ReachableViaWWAN) {
    [ViewManager showStatus:@"Reachable (WWAN)!"];
} else {
    [ViewManager showStatus:@"Not reachable, aww :-("];
}

При использовании reachabilityWithHostName вы должны помнить, что это просто имя хоста , здесь не должно быть префикса http: // или подобного.

0 голосов
/ 28 апреля 2011

Чтобы проверить достижимость вашего сервера с помощью кода Apple (Reachability), вы должны просмотреть его служебные методы, как показано ниже;

+ (Reachability*) reachabilityWithHostName: (NSString*) hostName;

Но, по моему мнению, я сначала проверю достижимость для сочетания других факторов (проверьте подключение к Интернету 3G / Edge / Wifi, а затем проверьте желаемую доступность хоста) в том же экземпляре. Просто одна из безопасных проверок в методе доступности обновлений в моем сценарии.

 else if (((netStatus == ReachableViaWiFi) || (netStatus == ReachableViaWWAN)) && connectionRequired == YES)
 {
       isInternetConAvailable = ([[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:kReachibility_ping_uri] 
                                                          cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20.0] delegate:self]) ? YES : NO;
 }

Где ' kReachibility_ping_uri ' - это константа, содержащая имя хоста, класс достижимости будет публиковать уведомление ' kReachabilityChangedNotification ' всякий раз, когда достижимость изменяется на iphone-client в то же время, когда вы выполнить все проверки достижимости и обновить статус доступности.

Если вам нужен пример, как я использовал его в своих приложениях, дайте мне знать, я предоставлю код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...