본문 바로가기
JAVA/NetworkTest

자바Network (Basic) URL Test

by 미눅스[멘토] 2023. 6. 30.
728x90

 

URL Test01

package kr.or.ddit.basic;

import java.net.MalformedURLException;
import java.net.URL;

public class URLTest01 {

	public static void main(String[] args) throws MalformedURLException {
		// URL 클래스 ==> 인터넷에 존재하는 서버들의 자원에 접근할 수 있는 주소를 다루는 클래스
		
		// URL주소 형식 : 프로토콜://호스트명 : 포트번호/경로명//파일명?쿼리스트링#참조
		// 		  예시 : http://ddit.or.kr:80/index.html?ttt=123
		
//		방법1
//		URL url = new URL("http://ddit.or.kr:80/index.html?ttt=123");
		
//		방법2
		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("Query : " + url.getQuery());
		System.out.println();
	}
}

 

 

 

 

URL test02

package kr.or.ddit.basic;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
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 {
		// URLConnection 클래스 ==> 애플리케이션과 URL간의 통신 연결을 위한 클래스
		
		// 특정 서버의 정보와 파일 내용을 가져와 출력하는 예제
		URL url = new URL("https://www.naver.com/index.html");
		
		// URL객체를 이용해서 URLConnection객체를 구한다.
		URLConnection urlCon = url.openConnection();
		
		//Header정보 출력하기
		Map<String, List<String>> headerMap = urlCon.getHeaderFields(); //전체 Header정보 가져오기 
		
		//출력하기
		for(String headerKey : headerMap.keySet()) {
			System.out.println(headerKey + " : " + headerMap.get(headerKey));
		}
		System.out.println("---------------------------------------------------");
		
		
		// 연결된 문서의 내용 읽어오기
		
		/*
		// 방법1 ==> URLConnection객체를 이용하는 방법
		
		// index.html문서의 내용을 읽어올 스트림 객체 구하기
		InputStream in = urlCon.getInputStream();
		InputStreamReader isr = new InputStreamReader(in , "utf-8");
		BufferedReader br = new BufferedReader(isr);
		
		// 자료를 읽아와 화면에 출력하기
		String temp; //읽어온 데이터가 저장될 변수
		while((temp=br.readLine()) != null) {
			System.out.println(temp);
		}
		
		br.close(); //스트림 닫기
		*/
        
		//방법2 ==> URL객체의 openStream()메서드 이용하기
		InputStream in2 = url.openStream();
		BufferedReader br2 = new BufferedReader(new InputStreamReader(in2,"utf-8"));
		
		BufferedWriter bw = new BufferedWriter(new FileWriter("d:/D_Other/index.html"));
		
		String str;
		
		while((str = br2.readLine()) != null) {
//			System.out.println(str);
			bw.write(str + "\n");
		}
		
		bw.flush();
		
		bw.close();
		br2.close();
		System.out.println("작업 완료....");
	
	}
}

'JAVA > NetworkTest' 카테고리의 다른 글

자바Network (TCP) TcpClient01  (0) 2023.06.30
자바Network (TCP) Sender  (0) 2023.06.30
자바Network (TCP) Receiver  (0) 2023.06.30
자바Network (Basic) InetAddress Test  (0) 2023.06.30
자바Network (Basic) Dialog Test  (0) 2023.06.30