"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java URLConnection에서 사용자 에이전트를 올바르게 설정하는 방법은 무엇입니까?

Java URLConnection에서 사용자 에이전트를 올바르게 설정하는 방법은 무엇입니까?

2024년 11월 16일에 게시됨
검색:321

How to Correctly Set the User-Agent in Java URLConnection?

Java URLConnection의 사용자 에이전트 설정

URLConnection으로 Java를 사용하여 웹페이지를 구문 분석하려고 시도하고 사용자 에이전트를 지정된 값 끝에 추가 "Java/1.5.0_19"가 추가될 수 있습니다. 이는 이전 버전의 Java의 제한으로 인해 발생합니다.

솔루션(Java 1.6.30 이상)

Java 1.6.30 이상에서 이 문제는 해결되었습니다. setRequestProperty("User-Agent", "Mozilla ...")를 사용하여 사용자 에이전트를 설정하면 이제 Java 버전을 추가하지 않고도 올바르게 작동합니다.

확인

확인하려면 그러면 들어오는 요청의 원시 HTTP 헤더를 표시하는 netcat을 사용하여 포트에서 수신 대기할 수 있습니다. 사용자 에이전트를 설정하지 않으면 헤더에 다음이 표시됩니다:

GET /foobar HTTP/1.1
User-Agent: Java/1.6.0_30
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

사용자 에이전트를 설정할 때 헤더는 대신 다음과 같이 표시됩니다:

GET /foobar HTTP/1.1
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

예제 코드(Java 1.6.30 )

다음 코드 예는 사용자 에이전트를 올바르게 설정하는 방법을 보여줍니다.

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;


public class TestUrlOpener {

    public static void main(String[] args) throws IOException {
        URL url = new URL("http://localhost:8080/foobar");
        URLConnection hc = url.openConnection();
        hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

        System.out.println(hc.getContentType());
    }

}
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3