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

私はあなたがただ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();
于 2012-06-01T18:47:21.540 に答える