【发布时间】:2014-01-19 05:24:13
【问题描述】:
我可以相信以下陈述吗?
一个 URL 会将客户端重定向到某个其他 URL当且仅当它包含多次出现的“http://”和/或“https://”? p>
注意:我所说的“和/或”是指每个标记的单次出现仍算作两次出现。
我猜答案是否定的,因为一些只有一个这样的令牌的 URL 可能仍会将客户端引导到一个网页,然后该网页将运行一些 javascript,最终将重定向客户端。
如果答案确实是否定的,那么我是否有任何其他方法可以在不“进入 URL”的情况下确定这一点(使用 URL-Connection、浏览器、Selenium 等)?
谢谢
【问题讨论】:
-
没有。您必须转到 URL。
-
您必须获取该页面才能查看它会将您重定向到哪里。但是您不需要网络浏览器。一个简单的
netcat或curl将显示返回的页面是301、302、303 还是任何3XX。这是您发出curl http://google.com时的示例输出。<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/">here</A>. </BODY></HTML> -
我如何在 Java 中“卷曲”?
-
@barakmanos 要在使用
HttpUrlConnection时检查响应代码,您可以在其对象上调用getResponseCode()方法。它返回一个整数代码。例如:200-表示正常,301-表示永久重定向等 -
@boxed__l,谢谢,但这在 100% 的情况下都不起作用。方法“getResponseCode”可能返回 200,而 URL 仍会将客户端重定向到其他地方。因此,HttpURLConnection 和“curl”(我猜它们是等效的)都没有提供“完全证明”的解决方案(不过,我很高兴听到任何可以证明不同的使用建议)。
标签: http url http-redirect url-redirection