본문 바로가기

Java/Spring

Java HTTP Request 클래스 구현

클래스 구현

package com.aikl.v2.batch.support;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fasterxml.jackson.databind.ObjectMapper;

import lombok.Data;

/*
 * HTTP 요청 객체
 */
@Data
public class RequestHandler {
	
	protected final Logger logger = LoggerFactory.getLogger(this.getClass());
	
	// POST 요청 실행
	public void post(String URL, Object data) {
		
		String inputLine = null;
		StringBuffer outResult = new StringBuffer();
		
		try {
			URL url = new URL(URL);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			
			conn.setDoOutput(true);
			conn.setRequestMethod("POST");
			conn.setRequestProperty("Content-Type", "application/json");
		      
			ObjectMapper mapper = new ObjectMapper();
			String jsonStr = mapper.writeValueAsString(data);
			
			OutputStream os = conn.getOutputStream();
			
			os.write(jsonStr.getBytes("UTF-8"));
			os.flush();
		    
			BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
			
			while ((inputLine = in.readLine()) != null) {
				outResult.append(inputLine);
			}
		    
			conn.disconnect();
		} catch(Exception e) {
			logger.error(e.getMessage(), e);
			e.printStackTrace();
		}
	}
}

 

 

사용

RequestHandler requestHandler = new RequestHandler();
Map<String, String> data = new HashMap<>();
data.put("event", "something...");
requestHandler.post(url, data);