java重定向设置header怎么实现

Javaでは、HTTPリクエストの作成およびリダイレクトの実装に「HttpURLConnection」クラスを使用できます。

次にリダイレクトのレスポンスヘッダを設定する方法のサンプルコードを示します。

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public class RedirectExample {
    public static void main(String[] args) throws IOException {
        String url = "http://example.com";
        
        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
        connection.setInstanceFollowRedirects(false); // 禁止自动重定向
        connection.setRequestProperty("User-Agent", "Mozilla/5.0"); // 设置请求头
        
        int responseCode = connection.getResponseCode();
        
        if (responseCode == HttpURLConnection.HTTP_MOVED_PERM || responseCode == HttpURLConnection.HTTP_MOVED_TEMP) {
            String redirectUrl = connection.getHeaderField("Location"); // 获取重定向的URL
            System.out.println("重定向到:" + redirectUrl);
            
            // 手动发送新的请求
            connection = (HttpURLConnection) new URL(redirectUrl).openConnection();
            connection.setRequestProperty("User-Agent", "Mozilla/5.0"); // 设置请求头
            
            responseCode = connection.getResponseCode();
            System.out.println("响应代码:" + responseCode);
        } else {
            System.out.println("响应代码:" + responseCode);
        }
        
        connection.disconnect();
    }
}

上記のサンプルコードでは、まずHttpURLConnectionオブジェクトを作成し、setInstanceFollowRedirects(false)メソッドで自動リダイレクトを禁止します。次に、setRequestProperty()メソッドで「User-Agent」リクエストヘッダーを設定し、ブラウザアクセスをシミュレートします。次に、リクエストを送信し、レスポンスコードを取得します。レスポンスコードがHTTP_MOVED_PERM(301)またはHTTP_MOVED_TEMP(302)の場合、リダイレクトが発生したことを示します。getHeaderField(“Location”)メソッドを使用してリダイレクトURLを取得し、新しいリクエストを手動で送信します。最後に、もう一度レスポンスコードを取得して検証します。

なお、上記コードは一例であり、具体的な実装は要件によって異なりますのでご注意ください。

bannerAds