0

我已经成功实现了可达性类。但是,在我的应用程序中,我想在无法连接到我们的服务器时通知用户(但常规互联网正在运行)。

可达性报告 iPhone 可以成功访问主机名,当我认为它可能会返回错误 b/c 我不在经过身份验证的网络上时:

我使用的主机名是“foreverfreebank.com”。同样,Reachability 的主机名检查报告成功。

然而,

--通过网络访问本网站,需要在浏览器中使用https,即' https://foreverfreebank.com '

可达性是否解释了这种情况?还是协议部分('https')不重要?

如果您在 Firefox 浏览器中输入“ http://foreverfreebank.com ”(省略“s”),我很困惑 b/c,您会收到错误消息。也就是说,http:// 不应该是可访问的。

同样,我有另一个需要 VPN 访问才能访问该站点的站点:http ://checksforever.com 。当我尝试使用主机名:“checksforever.com”时,即使我不在 VPN 上,Reachability 也会报告成功。

这是预期的行为吗?谢谢

4

1 回答 1

1

您需要检查特定端口(在本例中为 443)的可达性。这是 Reachability API 不支持的。参考这个问题,或者这个

文档中的相关部分:

当应用程序发送到网络堆栈的数据包可以离开本地设备时,远程主机被认为是可达的。可达性并不能保证数据包会真正被主机接收。

因此,基本上 Reachability 不会测试远程主机是否接受传入连接。为此,我怀疑您需要打开 URL 连接并等待超时/其他错误。

于 2013-06-07T09:55:47.847 回答