HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트
-HTTP message body에 데이터를 직접 담아서 요청
HTTP API에서 주로 사용, JSON, XML, TEXT
데이터 형식은 주로 JSON 사용
POST, PUT, PATCH
먼저 가장 단순한 텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고, 읽어보자.
HTTP 메시지 바디의 데이터를 InputStream을 사용해서 직접 읽을 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package hello.servlet.basic.requset;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletInputStream;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.util.StreamUtils;
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 {
//ctrl+alt+v 변수만들기
//바디의 내용을 바이트 코드로 바로 얻을수 있다
//바이트 코드를 스트링으로 바꿔준다
ServletInputStream inputStream = request.getInputStream();
String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);
System.out.println("messageBody = " + messageBody);
response.getWriter().write("OK");
}
}
|
cs |
Postman을 사용해서 테스트 해보자.
-참고-
inputStream은 byte 코드를 반환한다. byte 코드를 우리가 읽을 수 있는 문자(String)로 보려면 문자표
(Charset)를 지정해주어야 한다. 여기서는 UTF_8 Charset을 지정해주었다.
문자 전송
POST http://localhost:8080/request-body-string
content-type: text/plain
message body: hello
결과: messageBody = hello
'프로그래밍 > SpringMVC_1' 카테고리의 다른 글
HTTP 요청 데이터 - API 메시지 바디 - JSON (1) | 2024.01.22 |
---|---|
HTTP 요청 데이터 - POST HTML Form (0) | 2024.01.13 |
HTTP 요청 데이터 - GET 쿼리 파라미터 (0) | 2024.01.12 |
HTTP 요청 데이터 - 개요(Get, POST, HTTP Message body) (0) | 2024.01.12 |
Hello 서블릿 (0) | 2024.01.10 |