【发布时间】:2017-11-08 23:57:37
【问题描述】:
我正在用 java 开发一个应用程序来验证一个站点是否在线。 我通过以下方式获得 http 响应:
URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
但是当我访问它正在重定向的 URL 时,HTTP 响应始终是 301。我想获取该站点被重定向的新 URL。可能吗?
【问题讨论】:
-
您需要将 follow redirect 设置为 true,api 将加载重定向页面,然后您可以按照其他人的建议检查位置标头。
-
HttpURLConnection 默认自动跟随重定向。如果您收到 301,则您必须使用
setFollowRedirects或setInstanceFollowRedirects方法明确禁用以下重定向,但您没有在问题中提及。 -
@ErwinBolwidt 我试图获得响应的站点给了我一个 301 和 302 HTTP 响应。但是使用 getHeaderField() 我只能得到旧的 URL
标签: java url http-redirect