ホームページ  >  記事  >  Java  >  JavaでリダイレクトされたURLを確認するにはどうすればよいですか?

JavaでリダイレクトされたURLを確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-11 12:33:03256ブラウズ

How to Determine the Redirected URL in Java?

Java でリダイレクトされる URL を決定する

URLConnection を使用して Web ページにアクセスすると、リダイレクトが発生するのが一般的です。これは、URL が別の宛先を指している場合に発生します。リダイレクトされた URL を特定するには、HTTP リダイレクトがどのように機能するかを理解する必要があります。

通常、サーバーはリダイレクトを示す 3xx ステータス コード (例: 301、302) で応答します。応答には、新しい宛先を指定する「Location」ヘッダー フィールドが含まれます。ただし、URLConnection は自動的にリダイレクトに従いません。

リダイレクトされた URL へのアクセス

リダイレクトされた URL を取得するには、最初の URLConnection の後に getInputStream() を手動で呼び出します。繋がり。このアクションにより接続が強制的に確立され、サーバーは「Location」ヘッダーを含む最終応答を送信します。

URLConnection con = new URL(url).openConnection();
con.connect();
System.out.println("Original URL: " + con.getURL());
InputStream is = con.getInputStream();
System.out.println("Redirected URL: " + con.getURL());
is.close();

Location ヘッダーへのアクセス

場合によっては、リダイレクトされたコンテンツを取得する前に、「Location」ヘッダーにアクセスしたい場合があります。この目的のために、HttpURLConnection を使用し、setInstanceFollowRedirects(false):

HttpURLConnection con = (HttpURLConnection) (new URL(url).openConnection());
con.setInstanceFollowRedirects(false);
con.connect();
System.out.println("Response code: " + con.getResponseCode());
String location = con.getHeaderField("Location");
System.out.println("Location header: " + location);
を設定できます。

以上がJavaでリダイレクトされたURLを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。