From c2c29dab9d7f930e2e96277b3e7af015fa5be277 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Wed, 7 Apr 2021 23:16:18 +0900 Subject: [PATCH] spring mvc : http request body(json) --- .../request/RequestBodyJsonController.java | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 spring-mvc/springmvc/src/main/java/com/example/springmvc/basic/request/RequestBodyJsonController.java diff --git a/spring-mvc/springmvc/src/main/java/com/example/springmvc/basic/request/RequestBodyJsonController.java b/spring-mvc/springmvc/src/main/java/com/example/springmvc/basic/request/RequestBodyJsonController.java new file mode 100644 index 00000000..75029e8d --- /dev/null +++ b/spring-mvc/springmvc/src/main/java/com/example/springmvc/basic/request/RequestBodyJsonController.java @@ -0,0 +1,72 @@ +package com.example.springmvc.basic.request; + +import com.example.springmvc.basic.HelloData; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpEntity; +import org.springframework.stereotype.Controller; +import org.springframework.util.StreamUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +@Slf4j +@Controller +public class RequestBodyJsonController { + + private final ObjectMapper objectMapper = new ObjectMapper(); + + @PostMapping("/request-body-json-v1") + public void requestBodyJsonV1(HttpServletRequest request, HttpServletResponse response) throws IOException { + ServletInputStream inputStream = request.getInputStream(); + String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); + + log.info("messageBody={}", messageBody); + HelloData helloData = objectMapper.readValue(messageBody, HelloData.class); + log.info("helloData={}", helloData); + + response.getWriter().write("ok"); + } + + @ResponseBody + @PostMapping("/request-body-json-v2") + public String requestBodyJsonV2(@RequestBody String messageBody) throws IOException { + + log.info("messageBody={}", messageBody); + HelloData helloData = objectMapper.readValue(messageBody, HelloData.class); + log.info("helloData={}", helloData); + + return "ok"; + } + + @ResponseBody + @PostMapping("/request-body-json-v3") + public String requestBodyJsonV3(@RequestBody HelloData helloData) { + log.info("helloData={}", helloData); + + return "ok"; + } + + @ResponseBody + @PostMapping("/request-body-json-v4") + public String requestBodyJsonV4(HttpEntity data) { + HelloData helloData = data.getBody(); + log.info("helloData={}", helloData); + + return "ok"; + } + + @ResponseBody + @PostMapping("/request-body-json-v5") + public HelloData requestBodyJsonV5(@RequestBody HelloData helloData) { + log.info("helloData={}", helloData); + + return helloData; + } +}