我的目標是使用java.net.HttpURLConnection來解析給定URL的所有302重定向躍點。Java HttpURLConnection - 列舉所有302重定向跳轉
這是我的代碼片段(實際上,我用它在Talend SW):
String url = row2.url;
java.net.HttpURLConnection con = (java.net.HttpURLConnection) new java.net.URL(url).openConnection();
con.setInstanceFollowRedirects(false);
con.connect();
String realURL = con.getHeaderField("Location");
System.out.println(realURL);
它工作得很好,如果只有一個302的答覆。 例如,如果我填充row2.ulr =「https://jigsaw.w3.org/HTTP/300/302.html」代碼將輸出 - >https://jigsaw.w3.org/HTTP/300/Overview.html女巫是100%正確的。
我的問題是,我無法分析幾個302的回覆,一個典型的例子就是Facebook的網址: www.facebook.com/ID_account - > redirect-> www.facebook.com/ACCOUNT_NAME
使用重定向檢查網上我發現了2 - 302響應(我需要第二個):
這是捲曲輸出:
> >>> http://www.facebook.com/123456789
>
> > --------------------------------------------
> > 302 Found
> > --------------------------------------------
>
> Status: 302 Found Code: 302
> Location: https://www.facebook.com/123456789 Vary: Accept-Encoding
> Content-Type: text/html; charset=UTF-8
> X-FB-Debug: Muf4PfCP9TRKCO17QUf7SV2vsdnrCu6Gw2+sjWAKe0QPGdAToJPcmgH5LHv3NIAhzsJXfPB3a9/mVtuhiiEihA==
> Date: Mon, 16 Oct 2017 16:02:55 GMT Connection: close
> Content-Length: 0
>
>
>
>
> >>> https://www.facebook.com/123456789
>
> > --------------------------------------------
> > 302 Found
> > --------------------------------------------
>
> Status: 302 Found Code: 302 X-XSS-Protection: 0
> public-key-pins-report-only: max-age=600;
> pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=";
> pin-sha256="k2v657xBsOVe1PQRwOsHsw3bsGT2VzIqz5K+59sNQws=";
> pin-sha256="gMxWOrX4PMQesK9qFNbYBxjBfjUvlkn/vN1n+L9lE5E=";
> pin-sha256="q4PO2G2cbkZhZ82+JgmRUyGMoAeozA+BSXVXQWB8XWQ=";
> report-uri="http://reports.fb.com/hpkp/" Pragma: no-cache
> Location: https://www.facebook.com/a_name_account/
> Cache-Control: private, no-cache, no-store, must-revalidate
> X-Frame-Options: DENY Strict-Transport-Security: max-age=15552000;
> preload X-Content-Type-Options: nosniff Expires: Sat, 01 Jan 2000
> 00:00:00 GMT Vary: Accept-Encoding Content-Type: text/html;
> charset=UTF-8
> X-FB-Debug: j2KCBNZ1poIJ0xUeeQYbinpcqq2avoI4z8eWb9Dx/yUUg98uyGYGadydia7en1s5X4DJeaJB7VjxYaRvP+psCw==
> Date: Mon, 16 Oct 2017 16:02:55 GMT Connection: close
> Content-Length: 0
>
>
>
>
> >>> https://www.facebook.com/a_name_account/
如何找到第二個302的任何建議「要價較高離子「 - >https://www.facebook.com/a_name_account/?
在此先感謝 的REG S.
Thx,但是有沒有辦法簡單得到總計302的索引而不遞歸調用函數? – user3925023
也可以解釋一下這個行的URL url = new URL(location);? thx – user3925023
我相信你將不得不爲每個重定向提出請求。只有一個http請求獲得所有重定向並不是一種神奇的方式。我們只需要通過所有這些,並找到最後一個... – hooknc