-
[JAVA] HttpURLConnection GET/POST 방식Java/기타 2021. 7. 4. 15:58반응형
HttpURLConnection.java
1. GET 방식
2. POST 방식import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.Charset; import java.util.Map; import org.json.simple.JSONObject; public class HttpConnectionUtils { /** HttpURLConnection GET 방식 */ public static String getRequest(String targetUrl) { String response = ""; try { URL url = new URL(targetUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); // 전송 방식 conn.setRequestProperty("Content-Type", "application/json; charset=utf-8"); conn.setConnectTimeout(5000); // 연결 타임아웃 설정(5초) conn.setReadTimeout(5000); // 읽기 타임아웃 설정(5초) conn.setDoOutput(true); System.out.println("getContentType():" + conn.getContentType()); // 응답 콘텐츠 유형 구하기 System.out.println("getResponseCode():" + conn.getResponseCode()); // 응답 코드 구하기 System.out.println("getResponseMessage():" + conn.getResponseMessage()); // 응답 메시지 구하기 Charset charset = Charset.forName("UTF-8"); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset)); String inputLine; StringBuffer sb = new StringBuffer(); while ((inputLine = br.readLine()) != null) { sb.append(inputLine); } br.close(); response = sb.toString(); } catch (Exception e) { e.printStackTrace(); } return response; } /** HttpURLConnection POST 방식 */ public static String postRequest(String targetUrl, Map<String, Object> requestMap) { String response = ""; try { URL url = new URL(targetUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); // 전송 방식 conn.setRequestProperty("Content-Type", "application/json; charset=utf-8"); conn.setConnectTimeout(5000); // 연결 타임아웃 설정(5초) conn.setReadTimeout(5000); // 읽기 타임아웃 설정(5초) conn.setDoOutput(true); // URL 연결을 출력용으로 사용(true) String requestBody = getJsonStringFromMap(requestMap); System.out.println("requestBody:" + requestBody); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream())); bw.write(requestBody); bw.flush(); bw.close(); System.out.println("getContentType():" + conn.getContentType()); // 응답 콘텐츠 유형 구하기 System.out.println("getResponseCode():" + conn.getResponseCode()); // 응답 코드 구하기 System.out.println("getResponseMessage():" + conn.getResponseMessage()); // 응답 메시지 구하기 Charset charset = Charset.forName("UTF-8"); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset)); String inputLine; StringBuffer sb = new StringBuffer(); while ((inputLine = br.readLine()) != null) { sb.append(inputLine); } br.close(); response = sb.toString(); } catch (Exception e) { e.printStackTrace(); } return response; } /** Map을 jsonString으로 변환 */ @SuppressWarnings("unchecked") public static String getJsonStringFromMap(Map<String, Object> map) { JSONObject json = new JSONObject(); for(Map.Entry<String, Object> entry : map.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); json.put(key, value); } return json.toJSONString(); } }
HttpConnectionUtilsTest.java
import java.util.HashMap; import java.util.Map; import org.junit.Test; public class HttpConnectionUtilsTest { @Test public void testGetRequest() { String url = "https://jsonplaceholder.typicode.com/posts/1"; String response = HttpConnectionUtils.getRequest(url); System.out.println("getRequest:" + response); } @Test public void testPostRequest() { String url = "https://jsonplaceholder.typicode.com/posts"; Map<String, Object> map = new HashMap<String, Object>(); map.put("title", "foo"); map.put("body", "bar"); map.put("userId", 1); String response = HttpConnectionUtils.postRequest(url, map); System.out.println("postRequest:" + response); } }
반응형'Java > 기타' 카테고리의 다른 글
[Java] DOM4J를 이용한 XML(문자열, 파일) 파싱 (0) 2021.09.23 [Java] JDOM2을 이용한 XML(문자열, 파일) 파싱 (0) 2021.09.23 [JAVA] JSON 변환 (String, Map, List, JSONString, JSONObject, JSONArray) (0) 2021.07.04 [Java] Casting, valueOf, toString 비교 (0) 2020.03.17 [Java] List 중복 제거 (HashSet, TreeSet, Stream) (0) 2019.12.16