JAVA/포스팅

자바 URLConnection

짜집퍼박사(짜박) 2023. 11. 27. 14:25

URLConnection 클래스는 URL의 리소스와의 통신을 위한 추상 클래스입니다. 이 클래스는 java.net 패키지에 속해 있습니다. openConnection() 메서드를 사용하여 URL 객체로부터 URLConnection 객체를 얻을 수 있습니다. 이 클래스를 사용하면 URL과의 다양한 통신 작업을 수행할 수 있습니다.

 

URLConnection 주요 메서드

 

1. connect()

URL과의 실제 연결을 시도합니다. 일반적으로 이 메서드를 직접 호출하지 않아도 되며, 내부적으로 자동으로 호출됩니다.

URL url = new URL("https://www.example.com");
URLConnection connection = url.openConnection();
connection.connect(); // 연결 시도

 

2. getInputStream()

URL 리소스로부터 InputStream을 얻어옵니다. 이를 통해 리소스의 내용을 읽을 수 있습니다.

InputStream inputStream = connection.getInputStream();

 

3. getOutputStream() 

URL 리소스에 데이터를 출력하기 위한 OutputStream을 얻어옵니다.

OutputStream outputStream = connection.getOutputStream();

 

4. setRequestProperty(String key, String value)

HTTP 요청 헤더 필드를 설정합니다. 예를 들어, 사용자 에이전트를 설정할 수 있습니다.

connection.setRequestProperty("User-Agent", "Mozilla/5.0");

 

5. getHeaderField(String name)

지정된 헤더 필드의 값을 반환합니다.

String contentType = connection.getHeaderField("Content-Type");

 

6. getHeaderFields()

모든 헤더 필드를 맵 형태로 반환합니다.

Map<String, List<String>> headerFields = connection.getHeaderFields();

 

7. setDoInput(boolean doinput)

입력 스트림을 사용할지 여부를 설정합니다.

connection.setDoInput(true);

 

8. setDoOutput(boolean dooutput)

출력 스트림을 사용할지 여부를 설정합니다.

connection.setDoOutput(true);

 

9. setRequestMethod(String method)

HTTP 요청 메서드를 설정합니다. 기본값은 "GET"입니다.

connection.setRequestMethod("POST");

 

예제

다음은 URLConnection을 사용하여 간단한 HTTP GET 요청을 보내고 응답을 읽어오는 예제입니다.

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class URLConnectionExample {
    public static void main(String[] args) {
        try {
            // URL 생성
            URL url = new URL("https://www.example.com");

            // URLConnection 열기
            URLConnection connection = url.openConnection();

            // 입력 스트림 열기
            InputStream inputStream = connection.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

            // 응답 읽기
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            // 리소스 해제
            reader.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

이 예제에서는 URL을 생성하고, 이를 통해 URLConnection을 엽니다. 그리고 getInputStream()을 사용하여 URL 리소스로부터 데이터를 읽어옵니다. 읽은 데이터는 콘솔에 출력됩니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 TCP소켓 프로그래밍  (0) 2023.11.27
자바 소켓 프로그래밍  (0) 2023.11.27
자바 URL(Uniform Resource Location)  (0) 2023.11.27
자바 InetAddress  (0) 2023.11.27
자바 IP주소(IP address)  (0) 2023.11.27