>  기사  >  Java  >  Java에서 URLConnection을 사용할 때 리디렉션된 URL을 검색하는 방법은 무엇입니까?

Java에서 URLConnection을 사용할 때 리디렉션된 URL을 검색하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-06 18:22:03947검색

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

Java에서 리디렉션된 URL을 식별하는 방법

Java에서 URLConnection 클래스는 원격 URL과의 연결을 설정하는 편리한 방법을 제공합니다. 그러나 URL 리디렉션과 관련된 시나리오에서는 검색된 URL이 최종 대상이 아닐 수도 있습니다. 실제 리디렉션된 URL을 결정하는 것은 어려운 일입니다. 이 문서에서는 이 문제를 해결하는 솔루션에 대해 설명합니다.

URLConnection을 통해 URL에 액세스할 때 서버가 리디렉션된 URL을 나타내는 Location 헤더 필드와 함께 중간 응답을 보낼 수 있습니다. 그러나 openConnection() 메서드는 이 중간 응답을 캡처하지 않습니다.

getInputStream() 메서드 활용

리디렉션된 URL을 캡처하려면 getInputStream() 메서드를 사용할 수 있습니다. 활용됩니다. 이 방법은 연결 프로세스를 시작하고 모든 HTTP 리디렉션을 따릅니다. 결과적으로 URLConnection 인스턴스는 이제 리디렉션된 URL에 대한 정보를 보유합니다.

설명을 위해 다음 코드 조각은 리디렉션된 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();

리디렉션 확인 콘텐츠 검색 전

특정 시나리오에서는 리디렉션된 URL에서 콘텐츠를 가져오기 전에 리디렉션이 발생했는지 확인해야 할 수 있습니다. 다음 코드 조각은 이 접근 방식을 보여줍니다.

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);

위 내용은 Java에서 URLConnection을 사용할 때 리디렉션된 URL을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.