我试图在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")
给了我空值,表示不存在这样的字段,con.getResponseCode()
200则表示不存在重定向。我做错什么了?示例url:http://hukd.mydealz.de/visit?m=734&q=337105
(希望可以在这里发布)
最佳答案
您提到的url没有执行http状态代码重定向(状态代码3xx),而是使用html的meta refresh标记进行重定向。httpurlconnection只能检测状态代码重定向(在您的情况下是200)。
最好的方法是使用隐藏的WebView
,然后使用webview.onPageLoadFinished()
获取页面的最终url。或者,您可以解析html以获取meta refresh标记的值以获取重定向url