URL(Uniform Resource Locator)은 자원의 위치를 나타내는 문자열입니다. 자원은 일반적으로 웹상의 문서, 이미지, 동영상 등의 파일이 될 수 있습니다. 자바에서는 URL 클래스를 사용하여 URL을 다룰 수 있습니다. 이 클래스는 java.net 패키지에 속해 있습니다.
URL 클래스의 생성자
1. URL(String spec)
주어진 문자열 spec을 기반으로 URL을 생성합니다.
URL url = new URL("https://www.example.com/path/file.html");
2. URL(URL context, String spec)
주어진 context URL과 상대 경로 문자열 spec을 기반으로 새로운 URL을 생성합니다.
URL baseUrl = new URL("https://www.example.com");
URL relativeUrl = new URL(baseUrl, "/path/file.html");
URL 클래스의 주요 메서드
1. openStream()
URL의 내용을 읽어오는 InputStream을 반환합니다.
InputStream inputStream = url.openStream();
2. openConnection()
URL에 대한 URLConnection 객체를 반환합니다. 이를 통해 더 많은 컨트롤이 가능합니다.
URLConnection connection = url.openConnection();
3. toString()
URL 객체를 문자열로 변환하여 반환합니다.
String urlString = url.toString();
4. getProtocol()
URL의 프로토콜을 반환합니다. 예를 들어, "http", "https" 등이 될 수 있습니다.
String protocol = url.getProtocol();
5. getHost()
URL의 호스트 이름을 반환합니다.
String host = url.getHost();
6. getPath()
URL의 경로를 반환합니다.
String path = url.getPath();
예제
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
public class URLExample {
public static void main(String[] args) {
try {
// URL 생성
URL url = new URL("https://www.example.com");
// URL의 내용을 읽어오기
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
// HttpURLConnection을 사용하여 더 많은 컨트롤
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}
이 예제에서는 URL 클래스를 사용하여 웹사이트의 내용을 읽어오는 간단한 예제를 보여줍니다. openStream() 메서드를 사용하여 InputStream을 얻어온 후에는 파일을 읽는 것처럼 처리할 수 있습니다. 또한, openConnection() 메서드를 사용하여 HttpURLConnection을 얻어옴으로써 HTTP 헤더 및 상태 코드 등에 접근할 수 있습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 소켓 프로그래밍 (0) | 2023.11.27 |
---|---|
자바 URLConnection (0) | 2023.11.27 |
자바 InetAddress (0) | 2023.11.27 |
자바 IP주소(IP address) (0) | 2023.11.27 |
자바 클라이언트(client)와 서버(sever) (0) | 2023.11.27 |