我正在尝试在Java中获取这样的URL的重定向URL:
HttpURLConnection con = (HttpURLConnection)(new URL( reUrl ).openConnection());
con.setInstanceFollowRedirects( false );
con.connect();
int responseCode = con.getResponseCode();
String location = con.getHeaderField("Location");
uri = location;
但是con.getHeaderField("Location")
给我null说没有这样的字段和con.getResponseCode()
200所以没有重定向。我究竟做错了什么?
示例网址:http://hukd.mydealz.de/visit?m=734&q=337105
(希望可以在这里发帖)
答案 0 :(得分:1)
您提到的URL没有执行HTTP状态代码重定向(状态代码3xx),但它使用HTML的元刷新标记来重定向。 HttpURLConnection只能检测状态代码重定向(在您的情况下为200)。
最好的方法是使用隐藏的WebView
,然后使用webview.onPageLoadFinished()
获取网页的最终网址。或者,您可以解析html以获取元刷新标记的值以获取重定向网址