반응형
외부 라이브러리를 이용하지 않고 java (1.8 기준) 만으로 http client (get method) 를 구현하는 코드를 공유합니다.
... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; ... ... public static String get(String getUrl) { URL url = null; try { url = new URL(getUrl); } catch (MalformedURLException e1) { throw new RuntimeException("URL형식을 확인해주세요.", e1); } HttpURLConnection con = null; try { con = (HttpURLConnection) url.openConnection(); } catch (IOException e1) { throw new RuntimeException("연결 중 입출력 오류가 발생하였습니다.", e1); } try { con.setRequestMethod("GET"); } catch (ProtocolException e) { throw new RuntimeException("연결 중 프로토콜 오류가 발생하였습니다.", e); } con.setRequestProperty("Content-Type", "text/html"); con.setConnectTimeout(5000); // 연결 타임아웃 con.setReadTimeout(5000); // 읽기 타임아웃 con.setInstanceFollowRedirects(true); // 리다이렉트 자동 try { int status = con.getResponseCode(); if (status != HttpURLConnection.HTTP_OK) { throw new RuntimeException("정상 응답 코드가 아닙니다. " + status); } } catch (IOException e) { throw new RuntimeException("응답을 받는 중 오류가 발생하였습니다.", e); } StringBuffer content = new StringBuffer(); try { BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); } catch (IOException e) { throw new RuntimeException("응답을 읽는 중 오류가 발생하였습니다.", e); } con.disconnect(); return content.toString(); } ... |
반응형
'java' 카테고리의 다른 글
spring boot tomcat port 스프링부트 포트 (0) | 2018.05.17 |
---|---|
자바 - 리눅스에서 특정 프로세스 찾기. ps -ef command java on linux (2) | 2018.05.16 |
java inputStream to String, read classpath file (0) | 2018.05.16 |
java byte substring (0) | 2018.05.15 |
java - spring boot filter 등록 (0) | 2018.03.23 |
org.apache.catalina.util.SessionIdGeneratorBase : Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [289,555] milliseconds. (0) | 2018.03.21 |
spring boot application.properties encryption/decryption 스프링부트 프라퍼티 암호화 복호화 (0) | 2018.03.12 |
spring boot - spring.log 남기지 않기. (0) | 2018.02.21 |