在Java中,處理URL重定向可以使用java.net.HttpURLConnection
類
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class URLRedirectExample {
public static void main(String[] args) {
try {
String url = "https://example.com"; // 替換為需要重定向的URL
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setInstanceFollowRedirects(false); // 禁用自動重定向
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_MOVED_PERM || responseCode == HttpURLConnection.HTTP_MOVED_TEMP) {
String redirectUrl = connection.getHeaderField("Location"); // 獲取重定向的URL
System.out.println("Redirected to: " + redirectUrl);
// 如果需要繼續訪問重定向的URL,可以創建一個新的HttpURLConnection實例
HttpURLConnection redirectConnection = (HttpURLConnection) new URL(redirectUrl).openConnection();
// 處理重定向后的URL
} else {
System.out.println("No redirection found.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
這個示例首先創建一個HttpURLConnection
實例,然后禁用自動重定向。接下來,它檢查響應代碼是否表示重定向(HTTP_MOVED_PERM或HTTP_MOVED_TEMP)。如果發現重定向,它將從"Location"頭字段中獲取重定向的URL并打印出來。如果需要繼續訪問重定向的URL,可以創建一個新的HttpURLConnection
實例。