[JAVA] URL로 페이지 HTML소스 가져오기 (HttpsURLConnection)

[JAVA] URL로 페이지 HTML소스 가져오기 (HttpsURLConnection)

728x90

HTTPS 프로토콜 기준으로 작성된 URL 통신 예제입니다.

추가 설정 부분은 추후에 따로 다루겠습니다.

기본적인 형태에 대한 이해를 하시는데에 도움 되실겁니다.

네이버 웹툰 페이지으로 테스트 진행하는 예제입니다.

복사 & 붙여넣기 해도 됩니다.

패키지 선언은 하셔야합니다.

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import javax.net.ssl.HttpsURLConnection; public class Example { public Example() { System.out.println("Create Default Constructor"); } public static void main(String[] args) { // 요청 URL String reqURL = "https://comic.naver.com/index"; // 네이버 웹툰 페이지 // 응답 데이터 세팅 String resData = connect(reqURL, ""); // 디버깅 System.out.println("[resData] :

"); System.out.println(resData); } /** * 전달받은 URL과 요청파라미터 세팅하여 통신하는 메소드 * @param url * @param reqParameter * @return */ public static String connect(String url, String reqParameter){ // URL 관련 객체 선언 URLConnection uc = null; HttpsURLConnection httpsClient = null; // 응답 데이터 세팅할 객체 선언 StringBuffer resData = new StringBuffer(); try{ uc = new URL(url).openConnection(); // URLConnection 추가 설정 uc.setDoOutput(true); uc.setDoInput(true); uc.setAllowUserInteraction(false); // 프로토콜에 따른 HTTP"S" connection 사용 httpsClient = (HttpsURLConnection)uc; // HttpsURLConnection 추가 설정 httpsClient.setConnectTimeout(30 * 1000); // 연결 httpsClient.connect(); // 추가 파라미터 입력 // BufferedWriter try-with-resources try(BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(uc.getOutputStream()))){ bw.write(reqParameter.toString()); bw.flush(); } // 응답 데이터 읽기 // BufferedReader try-with-resources try(BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream()))){ String line = ""; while((line = br.readLine()) != null){ resData.append(line.trim()); } } }catch(Exception e){ System.out.println("Exception Message : " + e.getMessage()); } return resData.toString(); } }

728x90

반응형

from http://96-brain.tistory.com/79 by ccl(A) rewrite - 2021-10-25 16:27:34