클래스 구현
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);
'Java > Spring' 카테고리의 다른 글
[오류] A bean with that name has already been defined (1) | 2023.08.01 |
---|---|
[Spring] netty-socketio 소켓 서버 만들기 (0) | 2023.07.19 |