我的应用程序需要向网站发出GET请求,我希望能够知道它是否被防火墙阻止,并要求用户添加例外.
如何通过防火墙而不是其他东西找出我的获取请求失败?
如果它是一个好的防火墙,你不能.除其他选项外,防火墙还可以:
回复几个不同的ICMP消息之一,表明目的地不可访问,或
静默地丢弃请求,导致超时.
一个合理的选择是解释为什么应用程序无法访问该网站,并提供一些有用的建议:
No response from www.site.com: * Your computer may not be connected to the Internet. * The site may be down. * The site may be blocked by a firewall.
The network indicated that www.site.com is not accessible: * Helpful messages go here.
重要的一点是要区分,或许比我更好,区分失败的类型和背后的原因.例如,"无响应"故障排除的步骤与"设备告诉我它没有在该端口上侦听"的故障排除步骤不同.