我有客户端服务器说“http://abc.com”,我想检查此服务器是否响应
如何使用Apple的可达性代码进行检查?
当我看到该代码但无法在哪里写我的客户端的URL来检查这个。
请建议我。
答案 0 :(得分:9)
这是一个同步的例子。您可能希望异步执行此操作,但这将帮助您快速检查。
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://前缀等。
答案 1 :(得分:0)
为了通过Apple(可达性)代码检查服务器的可达性,您需要查看它的实用方法,如下所示;
+ (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 '是常量包含主机名,每当iphone-client上的可达性发生变化时,可达性类将发布通知' kReachabilityChangedNotification '执行所有可达性检查并更新您的可访问性状态。
如果你需要这个例子,我在我的应用程序中如何使用然后让我知道我将提供代码。