Java URLConnection 클래스 - HTTP 통신 수행
HTTP 통신 수행 – URLConnection 클래스
URL(String spec)
URL(String protocol, String host, int port, String file)
spec: URL 문자열
protocol: 프로토콜 이름
host: 호스트 이름
port:포트 번호
file: 파일 이름
URLConnection
클래스(java.net
패키지)를 이용하면 HTTP를 통해 웹 페이지에 액세스할 수 있다. URLConnetion
객체는 URL#openConnection
메서드로 받아 올 수 있다.
URLConnection 클래스의 주요 메소드
URLConnection
클래스에서 사용할 수 있는 주된 메소드는 다음과 같다.
메서드 | 개요 |
---|---|
void connect() |
현재 URL에 연결한다. |
int getConnectTimeout() |
연결 시간 초과 시간을 받아온다. |
Object getContent() |
콘텐츠 받아온다. |
String getContentEncoding() |
content-encoding 헤더의 값을 받아온다. |
int getContentLength() |
content-length 헤더의 값을 받아온다. |
String getContentType() |
content-type 헤더의 값을 받아온다. |
long getDate() |
date 헤더의 값을 받아온다. |
String getHeaderField(String name) |
지정된 헤더의 값을 받아온다. |
long getHeaderFieldDate(String name, long Default) |
지정된 헤더를 일자로서 해석한 값을 받아온다. |
int getHeaderFieldInt(String name, int Default) |
지정된 헤더를 수치로서 해석한 값을 취득 |
InputStream getInputStream() |
현재의 접속을 읽어들이는 입력 스트림을 받아온다. |
OutputStream getOutputStream() |
현재의 접속에 기입하는 출력 스트림을 받아온다. |
void setConnectTimeout(int timeout) |
연결 시간 초과 시간 설정한다. |
URLConnection 예제
다음은 지정된 URL로부터 컨텐츠를 받아와서 그 내용을 출력하는 예제이다.
UrlConnect.java
package com.devkuma.basic.http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class UrlConnect {
public static void main(String[] args) {
try {
URL url = new URL("http://devkuma.com/");
URLConnection con = url.openConnection();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"))) {
while (reader.ready()) {
System.out.println(reader.readLine());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
실행 결과:
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
URLConnection#getInputStream
메소드로 입력 스트림을 받아 올 수 있으며, 나머지는 스트림의 조작 순서에 따라 입력을 읽어들일 뿐이다. 좀 더 자세한 내용은 “스트림"을 참조하여라.
최종 수정 : 2022-09-24