在Java中實現GET請求的重定向可以使用HttpURLConnection類來發送HTTP GET請求,并處理服務器返回的重定向信息。下面是一個簡單的示例代碼:
import java.net.HttpURLConnection;
import java.net.URL;
public class RedirectExample {
public static void main(String[] args) {
try {
URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setInstanceFollowRedirects(false);
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_MOVED_TEMP
|| responseCode == HttpURLConnection.HTTP_MOVED_PERM
|| responseCode == HttpURLConnection.HTTP_SEE_OTHER) {
String newUrl = connection.getHeaderField("Location");
connection = (HttpURLConnection) new URL(newUrl).openConnection();
}
// 讀取重定向后的響應內容
// ...
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上面的示例中,我們首先創建一個URL對象,并通過調用openConnection()方法獲取HttpURLConnection對象。然后設置setInstanceFollowRedirects(false)來禁止自動處理重定向。接著發送GET請求,并檢查響應碼是否是重定向相關的狀態碼。如果是重定向,我們可以通過獲取Location頭字段來獲取重定向的URL,并重新發送GET請求。最后,我們可以讀取重定向后的響應內容。
需要注意的是,上面的示例只處理了簡單的重定向情況,實際應用中可能還需要考慮更復雜的重定向場景。