Home > Java > javaTutorial > How to Retrieve the Redirected URL When Using URLConnection in Java?

How to Retrieve the Redirected URL When Using URLConnection in Java?

DDD
Release: 2024-11-06 18:22:03
Original
1041 people have browsed it

How to Retrieve the Redirected URL When Using URLConnection in Java?

How to Identify the Redirected URL in Java

In Java, the URLConnection class offers a convenient method for establishing connections with remote URLs. However, in scenarios involving URL redirection, the retrieved URL may not be the final destination. Determining the actual redirected URL poses a challenge. This article discusses a solution to address this issue.

When accessing URLs through URLConnection, it is possible that the server sends an intermediate response with a Location header field indicating the redirected URL. However, the openConnection() method does not capture this intermediate response.

Utilizing the getInputStream() Method

To capture the redirected URL, the getInputStream() method can be utilized. This method initiates the connection process and follows any HTTP redirects. Consequently, the URLConnection instance now holds the information about the redirected URL.

To illustrate, the following code snippet demonstrates how to retrieve the redirected URL:

URLConnection con = new URL(url).openConnection();
System.out.println("Original URL: " + con.getURL());
con.connect();
System.out.println("Connected URL: " + con.getURL());
InputStream is = con.getInputStream();
System.out.println("Redirected URL: " + con.getURL());
is.close();
Copy after login

Checking for Redirection Prior to Content Retrieval

In certain scenarios, it may be necessary to determine whether a redirection has occurred before fetching the content at the redirected URL. The following code snippet illustrates this approach:

HttpURLConnection con = (HttpURLConnection)(new URL(url).openConnection());
con.setInstanceFollowRedirects(false);
con.connect();
int responseCode = con.getResponseCode();
System.out.println("Response code: " + responseCode);
String location = con.getHeaderField("Location");
System.out.println("Redirected to: " + location);
Copy after login

The above is the detailed content of How to Retrieve the Redirected URL When Using URLConnection in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template