URL 클래스
package kr.or.didt.basic;
import java.net.MalformedURLException;
import java.net.URL;
public class URLTest01 {
public static void main(String[] args) throws MalformedURLException {
//URL 클래스 ==> 인터넷에 존재하는 서버들의 자원에 접근할 수
// 있는 주소를 다루는 클래스
//http://www.ddit.or.kr:80/index.html?ttt=123
URL url = new URL("http", "ddit.or.kr", 80, "index.html?ttt=123");
System.out.println("Protocol : " + url.getProtocol());
System.out.println("Host : " + url.getHost());
System.out.println("Port : " + url.getPort());
System.out.println("File : " + url.getFile());
System.out.println("Path : " + url.getPath());
System.out.println("Qurey : " + url.getQuery());
System.out.println();
System.out.println(url.toExternalForm());//전체 경로 출력
}
}
URLConnetion
package kr.or.didt.basic;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class URLTest02 {
public static void main(String[] args) throws IOException {
//URLConnetion ==> 애플리케이션과 URL간의 통신 연결을 위한 클래스
//특정 서버의 정보와 파일 내용을 가져와 출력하는 예제
//URL url = new URL("http://www.naver.com/index.html");
URL url = new URL("https://www.naver.com");
// URLConnetion객체 구하기
URLConnection urlCon = url.openConnection();
//Header 정보 가져오기
Map<String, List<String>> headerMap = urlCon.getHeaderFields();
for(String headerKey : headerMap.keySet()){
System.out.println(headerKey + " : " +headerMap.get(headerKey));
}
System.out.println("----------------------------------------------");
// 해당 문서의 내용을 가져와 화면에 출력하기
// (index.html 문서 내용 가져오기)
/*//방법1 ==> URLConnection 객체를 이용하는 방법
//파일을 읽어오기 위한 스트림 객체 생성
InputStream is = urlCon.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr);
//자료를 읽어와 출력하기
while(true){
String str = br.readLine(); //한 줄씩 읽기
if(str==null){ //더 이상 읽어올 데이터가 없다.
break;
}
System.out.println(str);
}
br.close(); //스트림 닫기
*/
//방법2 ==> URL객체를 이용해서 스트림 객체를 구한다.
//URL객체의 openStream()메서드 이용
InputStream is2 = url.openStream();
BufferedReader br2 = new BufferedReader(
new InputStreamReader(is2, "utf-8")
);
while(true){
String str = br2.readLine(); //한 줄씩 읽기
if(str==null){ //더 이상 읽어올 데이터가 없다.
break;
}
System.out.println(str);
}
br2.close(); //스트림 닫기
}
}