2012-06-01 51 views
1

我有java相關的問題...java和網站重定向檢測

網站www.stationv3.com每天更新(大部分時間至少,它有點不規則)。每次我使用地址www.stationv3.com(使用瀏覽器)連接到一個站點時,它會將我重定向到它的子頁面www.stationv3.com/date_of_latest_update.html

我正在嘗試製作一個程序,最新的漫畫,但我不知道如何找出它的確切地址。但我知道我能夠找出我是否能夠以某種方式找出我在哪裏連接上被重定向的位置。這可能與Java?我知道它可以做各種古怪的事情,但我還是新的網絡相關的東西...

我用確切的站點名稱只是爲了讓您輕鬆檢查outwhat回事... 和此外,我正在創建一個通用代碼,可以(有些修補)適用於以這種方式運行的任何站點。

+0

找出重定向是如何完成的。用Javascript?使用位置標題?一旦你發現了,我們可以幫你。 –

+0

你沒有在你被重定向到date_of_latest_update.html的URL中的地址嗎? –

+0

我不想重定向,我試圖找出我被重定向的位置。不,它只是保持www.stationv3.com。 – Karlovsky120

回答

2
import java.net.*; 
public class ShowStationV3Redirect { 
public static void main(String[] args) throws Exception { 
    URL url = new URL(args[0]); 
    HttpURLConnection.setFollowRedirects(false); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    System.out.println("Response code = " + connection.getResponseCode()); 
    String header = connection.getHeaderField("location"); 
    if (header != null) 
     System.out.println("www.stationv3.com redirected to " + header); 
} 
} 

上面的代碼片段告訴你你被重定向到了什麼URL。

0

我想你可以只fecth:

http://www.stationv3.com/comics/{yyyy}{mm}{dd}sv3.gif 

,忘了重定向問題。您可以使用此代碼(未經測試):

URL server = new URL("<put here the image URL>"); 
HttpURLConnection connection = (HttpURLConnection)server.openConnection(); 
connection.setRequestMethod("GET"); 
connection.setDoInput(true); 
connection.setDoOutput(true); 
connection.setUseCaches(false); 
connection.addRequestProperty("Accept","image/gif"); 
connection.addRequestProperty("Accept-Encoding", "gzip, deflate"); 
connection.connect(); 
InputStream is = connection.getInputStream();  
OutputStream os = new FileOutputStream("c:/mycomic.gif"); 

byte[] buffer = new byte[1024];  
int byteReaded = is.read(buffer); 
while(byteReaded != -1) 
{ 
    os.write(buffer,0,byteReaded); 
byteReaded = is.read(buffer); 
} 

os.close(); 
+0

我可以,但我不知道確切的地址 - 可能漫畫沒有更新一段時間,所以輸入今天的日期並嘗試連接會失敗。這就是爲什麼我必須有最新的地址。 – Karlovsky120

+0

@ Karlovsky120當你發出HTTP請求時,你可以檢查它的404。 – Michael

+1

@ Karlovsky120得到它。順便說一句,你有沒有注意到網站上有一個RSS源,也可以用來獲取最新的圖像地址?也許這可能是一種選擇。 – loscuropresagio