1

我有java相关的问题...

网站 www.stationv3.com 每天都会更新(至少在大多数情况下,它有点不规则)。每次我使用地址 www.stationv3.com(使用浏览器)连接到一个站点时,它都会将我重定向到它的子页面 www.stationv3.com/date_of_latest_update.html

我正在尝试制作一个可以从网站上提取最新漫画的程序,但我不确定如何找到它的确切地址。但我知道我能够找出我是否能以某种方式找出我在每次连接时被重定向到哪里。用java可以吗?我知道它可以做各种古怪的事情,但我对互联网相关的东西还是新手......

我使用确切的站点名称只是为了方便您查看正在发生的事情......而且,我正在创建一个通用代码,它可以(通过一些修补)应用于以这种方式运行的任何站点。

4

2 回答 2

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。

于 2012-06-01T18:31:46.010 回答
0

我想你可能只是觉得:

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();
于 2012-06-01T18:47:21.540 回答