在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请求。最后,我们可以读取重定向后的响应内容。
需要注意的是,上面的示例只处理了简单的重定向情况,实际应用中可能还需要考虑更复杂的重定向场景。