package com.example.url;
import java.net.MalformedURLException;
import java.net.URL;
// URL 클래스를 이용해서 URL을 구성하는
// 프로토콜 이름, 호스트 주소, 포트번호 등 각 부분을 확인
public class ParseURL {
public static void main(String[] args) {
URL url = null;
try {
URL naverNewURL = new URL("https://news.naver.com:80");
url = new URL(naverNewURL, "/main/list.nhn?mode=LSD&mid=sec&sid1=001");
} catch (MalformedURLException e) {
e.printStackTrace();
}
System.out.println("프로토콜:" + url.getProtocol());
System.out.println("호스트명:" + url.getHost());
System.out.println("포트번호:" + url.getPort());
System.out.println("경로부분:" + url.getPath());
System.out.println("파일이름:" + url.getFile());
}
}
package com.example.url;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class URLRead {
public static void main(String[] args) {
// https://www.nate.com 사이트에서 보내주는
// 웹페이지를 읽어서 출력하기
BufferedReader reader = null;
try {
URL url = new URL("https://www.nate.com");
reader = new BufferedReader(new InputStreamReader(url.openStream(), "utf-8"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package com.example.url;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class URLConnectionReader {
public static void main(String[] args) {
// URLConnection 객체를 이용하여
// https://www.daum.net 사이트에서 보내주는
// 웹페이지를 읽어서 출력하기
BufferedReader reader = null;
try {
URL url = new URL("https://www.daum.net");
URLConnection con = url.openConnection(); // URL 객체에서 URLConnection
// 입력 스트림 생성
reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package com.example.url;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.net.URLEncoder;
//URLConnection을 이용해서 웹서버에 데이터 보내고
//웹 서버로부터 응답 데이터를 받아서 화면에 출력하기
//http://httpbin.org/get
//http://httpbin.org/post
public class URLConnectionWriter {
public static void main(String[] args) {
OutputStreamWriter writer = null;
BufferedReader reader = null;
try {
//URL url = new URL("http://httpbin.org/post");
URL url = new URL("http://localhost/jspstudy/jsp7/URLService.jsp");
URLConnection con = url.openConnection();
// GET/POST 메소드 요청방식 설정
// POST 요청 설정함
// post 요청일 때 URL주소에 쿼리스트링을 붙이지 않음!
con.setDoOutput(true); // 기본값은 false(GET방식), true(POST방식)
// 출력스트림 생성
writer = new OutputStreamWriter(con.getOutputStream(), "utf-8");
// 서버에 데이터보내기
// & 문자로 파라미터를 구분
String firstname = "길동";
String lastname = "홍";
String encFirstname = URLEncoder.encode(firstname, "utf-8");
String encLastname = URLEncoder.encode(lastname, "utf-8");
// 받는쪽에서
// String str = URLDecoder.decode("깨진문자열", "utf-8");
String parameters = "Firstname="+encFirstname+"&Lastname="+encLastname;
System.out.println(parameters);
writer.write(parameters);
writer.flush(); // 버퍼 비우기를 통해 요청작업으로 서버로 데이터 내보내기
// 입력스트림 생성
reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}