我有一个使用Web服务获取数据的应用程序。在从Web服务获取数据之前,我使用“Reachabilty”中说明的方法检查设备上的网络可用性。但它的作用是ping服务器并根据它给出状态的响应。但在我的应用程序中,我希望根据网络故障向用户显示不同的消息 1.有时网络在设备上不可用 2.有时候ping服务器已关闭
任何机构都可以告诉我如何区分这两种类型的失败。
由于 Ashwani
答案 0 :(得分: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;
}
编辑:您可以查看Reachability flags,它们会告诉您有关网络节点的可访问性状态的更多信息。