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

可达性报告说,当我以为iPhone可能返回错误b / c时,我不在身份验证网络上,因此iPhone可以成功到达主机名:

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

然而,

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

可达性是否解决了这种情况?还是协议部分('https')不算什么?

如果您在Firefox浏览器“ http://foreverfreebank.com”中键入(省略“ s”),我会感到困惑,但会收到错误消息。也就是说,http://应该无法访问。

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

这是预期的行为吗?谢谢

最佳答案

您需要检查特定端口上的可达性(在这种情况下为443)。可达性API不支持此功能。请参考this questionthis

文档中的相关部分:


  当由主机发送的数据包被认为是远程主机
  应用程序进入网络堆栈后,可以离开本地设备。
  可达性不能保证数据包实际上是
  由主机接收。


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

07-24 14:01