Java

[JAVA] HttpURLConnection Post 방식으로 처리하기

솔솔 2021. 4. 6. 09:00
반응형

안녕하세요 :>

오늘은 HttpURLConnection을 이용하여 외부 API를 호출해보려고합니다.

 

저 같은 경우에는 공통 메서드로 사용하기 위해 해당 url과 data를 받는 메서드로 만들었습니다.

POST 방식으로 호출하는 방법입니다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.*;

public Map<String, Object> sendPostData(String targetUrl, Map<String, Object> param) throws Exception { 
		
	Map<String, Object> resultMap = new HashMap<String, Object>();
	BufferedReader in = null;
	try {
		URL url = new URL(targetUrl);
		
		// Map에 담아온 데이터 셋팅해주기
		StringBuilder postData = new StringBuilder();
		for(Map.Entry<String, Object> params: param.entrySet()) {
			if(postData.length() != 0) postData.append("&");
			postData.append(URLEncoder.encode(params.getKey(), "UTF-8"));
			postData.append("=");
			postData.append(URLEncoder.encode(String.valueOf(params.getValue()), "UTF-8"));
				
		}
		byte[] postDataBytes = postData.toString().getBytes("UTF-8");
		
		// url 연결
	    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        
        //GET방식인지, POST방식인지
	    conn.setRequestMethod("POST");
        
        //받는 API에 따라 맞는 content-Type을 정해주면된다.
	    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        
        // content-length로 보내는 데이터의 길이
	    conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
		
        // 서버에서 온 데이터를 출력할 수 있는 상태인지
	    conn.setDoOutput(true);
        
        // POST 호출
	    conn.getOutputStream().write(postDataBytes);
	 
	    in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
	 
	    String inputLine;
	    StringBuffer response = new StringBuffer();
	    while((inputLine = in.readLine()) != null) { // response 출력
	    	response.append(inputLine);
	    }

		String jsonStr = response.toString();
		JSONParser parser = new JSONParser();			
		resultMap = (Map<String, Object>)parser.parse(jsonStr);
			
	} catch (Exception e) {
		throw e;
	} finally {
    	if ( in != null ){
        	in.close();
        }
    }
		
	return resultMap;
}

 


GET 방식으로 호출하는 방법

2021.04.05 - [Java] - JAVA HttpURLConnection Get 방식으로 처리하기

 

JAVA HttpURLConnection Get 방식으로 처리하기

안녕하세요 :> 오늘은 HttpURLConnection을 이용하여 외부 API를 호출해보려고합니다. 저 같은 경우에는 공통 메서드로 사용하기 위해 해당 url과 data를 받는 메서드로 만들었습니다. GET 방식으로 호출

ddol.tistory.com

글이 도움되었다면 구독과 공감 부탁드립니다👍👍

반응형