在Java中,可以通过HttpURLConnection类来获取重定向地址。具体步骤如下:
-
创建一个URL对象,指定要访问的URL地址。
-
调用URL对象的openConnection()方法,返回一个URLConnection对象。
-
将URLConnection对象转换为HttpURLConnection对象。
-
设置HttpURLConnection对象的请求方式为GET或POST。
-
调用HttpURLConnection对象的connect()方法,建立与服务器的连接。
-
获取HttpURLConnection对象的返回状态码,如果是302(重定向),则获取重定向地址。
-
通过getHeaderField()方法获取重定向地址。
示例代码如下:
import java.net.HttpURLConnection; import java.net.URL; public class RedirectExample { public static void main(String[] args) throws Exception { String urlStr = "http://example.com"; URL url = new URL(urlStr); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.connect(); int statusCode = connection.getResponseCode(); if (statusCode == HttpURLConnection.HTTP_MOVED_TEMP || statusCode == HttpURLConnection.HTTP_MOVED_PERM || statusCode == HttpURLConnection.HTTP_SEE_OTHER) { String redirectUrl = connection.getHeaderField("Location"); System.out.println("重定向地址:" + redirectUrl); } else { System.out.println("不是重定向请求"); } } }
上述代码通过访问"example.com",并获取返回的状态码来判断是否为重定向请求,如果是,就通过getHeaderField()方法获取重定向地址。