코드 그라데이션
HTTP 요청 데이터 - API Message Body - 단순 텍스트 본문
HTTP 요청 데이터 - API Message Body - 단순 텍스트
HTTP message body에 데이터를 직접 담아서 요청
- HTTP API에서 주로 사용, JSON, XML, TEXT
- 데이터 형식은 주로 JSON 사용 - 예전에는 XML이 많이 쓰였다가 지금은 대부분 JSON 사용.
- 사용 메서드 : POST, PUT, PATCH
HTTP 메시지 바디의 데이터를 InpusStream을 사용해서 직접 읽을 수 있다.
이런 API들은
- 서버와 서버가 통신할 때,
- 앱에서 서버로 요청할 때
- 웹 클라이언트에서 자바스크립트로 요청할 때
주로 사용한다.
RequestBodyStringServlet
@WebServlet(name = "requestBodyStringServlet", urlPatterns = "/request-body-string")
public class RequestBodyStringServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletInputStream inputStream = request.getInputStream(); // HTTP 요청의 입력 스트림을 얻어온다.
//입력 스트림에서 본문(body) 내용을 읽어와 문자열로 저장
String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);
//읽어온 본문(body) 내용을 콘솔에 출력한다.
System.out.println("messageBody = " + messageBody);
response.getWriter().write("ok"); // HTTP 응답에 "ok"라는 메시지를 작성하여 클라이언트에게 응답
}
}
- @WebServlet 어노테이션을 사용하여 /request-body-string 경로로 들어오는 HTTP 요청을 처리하는 서블릿을 정의.
- service 메서드에서는 HTTP 요청 (HttpServletRequest)과 HTTP 응답 (HttpServletResponse)을 처리한다.
- request.getInputStream()을 사용하여 HTTP 요청의 입력 스트림을 얻어옵니다. 이 입력 스트림은 HTTP 요청의 본문(body)을 읽어오는 데 사용된다.
- StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8)를 호출하여 입력 스트림에서 본문 내용을 문자열로 읽어온다. StandardCharsets.UTF_8은 문자열 인코딩을 나타낸다.
- 읽어온 본문(body) 내용을 System.out.println("messageBody = " + messageBody)를 통해 콘솔에 출력한다.
- 마지막으로 HTTP 응답에 "ok"라는 메시지를 작성하여 클라이언트에게 응답을 보낸다.
Postman으로 테스트하기
728x90
'Spring > MVC 1' 카테고리의 다른 글
HttpServletResponse 기본 사용법 (0) | 2023.09.20 |
---|---|
HTTP 요청 데이터 - API 메시지 바디 - JSON (0) | 2023.09.20 |
HTTP 요청 데이터 - POST HTML Form (1) | 2023.09.19 |
HTTP 요청 데이터 - 개요, GET 쿼리 파라미터 (0) | 2023.09.19 |
HttpServletRequest 기본 사용법 (0) | 2023.09.19 |
Comments