我的应用需要向网站发出 GET 请求,我希望能够知道它是否被防火墙阻止,并要求用户添加异常(exception)。
我如何才能发现我的 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.
重点是区分失败的类型和它们背后的原因,也许比我上面做的更好。例如,“无响应”的故障排除步骤将不同于“设备告诉我它没有在该端口上监听”的故障排除步骤。
关于http - 如何检测 Windows 中的防火墙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/642950/