package kr.s29.network;
import java.net.MalformedURLException;
import java.net.URL;
public class URLMain01 {
public static void main(String[] args) {
try {
// 포트를 뺸다거나 여러가지를 빼도 실행하는데 에러는 나지않지만 프로토콜http를 빼면 에러가난다.
URL url = new URL("<http://java.sun.com:8080/index.jsp?name> = kim #content");
System.out.println("프로토콜 : "+ url.getProtocol());//프로토콜:http를 출력하는 코드
System.out.println("호스트 : "+ url.getHost());//호스트 : java.sun.com를 출력하는 코드
System.out.println("기본 포트 : "+ url.getDefaultPort());//프로토콜 http의 기본포트를 출력하는 코드
System.out.println("포트 : "+url.getPort());//명시한 포트가 없을 시 -1이 반환된다.(com뒤에 :8080 과 같은 것을 명시하면 잘 나옴)
System.out.println("패스 : "+ url.getPath());
System.out.println("쿼리 :" + url.getQuery());
System.out.println("ref : "+ url.getRef());// # 뒤에 오는 레퍼런스
}catch(MalformedURLException e) {//url을 제대로 입력하지 않을시 나오는 에러
e.printStackTrace();
}
}
}
프로토콜 : http
호스트 : java.sun.com
기본 포트 : 80
포트 : 8080
패스 : /index.jsp
쿼리 :name = kim
ref : content
package kr.s29.network;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
public class URLMain02 {
public static void main(String[] args) {
BufferedReader br = null;
BufferedReader input = null; //서버로 부터 불러와서 입력받는 것
try {
//콘솔에서 입력 처리
br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("웹사이트 주소 입력 : ");//http말고 https로 해야됨.
String name = br.readLine();
URL url = new URL(name);
//네트워크를 통해서 서버로부터 데이터를 읽어들여 입력 처리
input = new BufferedReader(new InputStreamReader(url.openStream(),"UTF-8"));
String line;
while((line = input.readLine()) != null) {
System.out.println(line);
}
}catch(MalformedURLException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}finally{
if(br != null) try {br.close();}catch(IOException e) {};
if(input != null) try {input.close();}catch(IOException e) {};
}
}
}
웹사이트 주소 입력 : <https://www.naver.com>
이라고 입력하면 다양한 서버의 데이터들이 나온다.