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 |