“API를 보내는 방식의 기반이 되는 내용입니다. HTTP 요청 메시지의 메시지 바디에 내가 원하는 데이터를 직접 싣어서 서버에 전송을 합니다.”

먼저 가장 단순한 텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고, 읽어봅시다.

HTTP 메시지 바디의 데이터를 InputStream을 사용해서 직접 읽을 수 있습니다.

RequestBodyStringServlet

package hello.servlet.basic.request;

import org.springframework.util.StreamUtils;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

@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(); //...1
        String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); //...2

        System.out.println("messageBody = " + messageBody);

        response.getWriter().write("ok");
    }
}
  1. getInputStream ()
  2. StreamUtils

확인할 때는 Postman을 사용합시다.

Untitled

Untitled