我试图在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

09-10 06:29
查看更多