繁体   English   中英

如何检查对SBJson URL的网络访问

[英]How to check network access to SBJson URL

我正在使用SBJson从URL检索数据。 下载前如何检查我是否有权访问该URL。 我想检查一下,如果没有网络连接,有时应用程序崩溃。

这是我的代码

id response = [self objectWithUrl:[NSURL URLWithString:@"http://myurl.com/Service.svc/GetId"]];

*我正在使用stringWithUrl和objectWithUrl方法下载JSON。

使用可达性API并使用该URL作为您正在测试的主机名

http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

//reachabilityWithHostName- Use to check the reachability of a particular host name. 
+ (Reachability*) reachabilityWithHostName: (NSString*) hostName;

不要在主线程上使用可达性来检测您是否具有网络连接。 它不起作用,可能会锁定30秒或更长时间,从而导致您的应用终止。

相反,您应该简单地尝试使用NSURLConnection下载数据-如果需要,这将打开无线电。 如果发生错误,您将获得回调。

所有网络连接-包括域名查找-应该在辅助线程上或异步或至少是非阻塞的。 对于NSURL,请使用NSURLConnection的异步回调。

您的应用程序可能崩溃,因为您正在从主线程进行网络调用并锁定了30秒钟以上,因此系统看门狗计时器使您丧命。 在Xcode中查看崩溃日志应该可以验证这一点。 否则,您可能只是没有正确处理错误情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM