2012-06-01 52 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