HttpBodyController
package com.cos.controllerdemo.web;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.cos.controllerdemo.domain.User;
@RestController
public class HttpBodyController {
private static final Logger log = LoggerFactory.getLogger(HttpBodyController.class);
@PostMapping("/body1")
public String xwwwformurlencoded(String username) {
log.info(username);
return "key = value 전송옴";
}
@PostMapping("/body2")
public String plaintext(@RequestBody String data) { //평문
log.info(data);
return "text/plain 전송옴";
}
@PostMapping("/body3")
public String applicationjson(@RequestBody String data) {
log.info(data);
return "josn 전송 옴";
}
@PostMapping("/body4")
public String applicationjsonToObject(@RequestBody User user) {
log.info(user.getUsername());
return "josn 전송 옴";
}
}
postman
@PostMapping("/body1")
public String xwwwformurlencoded(String username) {
log.info(username);
return "key = value 전송옴";
}
body에 key = username, value = cos 를 넣어 send를 보내면 ,
Header에 Key = Content-Type, value = application/x-www-formurlencoded 가 담긴 것을 확인할 수 있다.
@PostMapping("/body2")
public String plaintext(@RequestBody String data) { //평문
log.info(data);
return "text/plain 전송옴";
}
body에 Text로 아뇽이라고 입력 후 send를 보내면 ,
Header에 Key = Content-Type, value = text/plain 가 담긴 것을 확인할 수 있다.
log로 찍어서 확인해보면,
@PostMapping("/body3")
public String applicationjson(@RequestBody String data) {
log.info(data);
return "josn 전송 옴";
}
Body에 JOSN으로 아래와 같이 넣어서 send를 하면
{
"username":"cos"
}
Header에 Key = Content-Type, value = application/json 가 담긴 것을 확인할 수 있다.
log로 찍어서 확인해보면,
controllerdemo
패키지에 domain
패키지를 만들고 User.java
class를 만들어준다.
User.java
package com.cos.controllerdemo.domain;
public class User {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
getUsername()을 사용하여 value 값만 가져온다.
@PostMapping("/body4")
public String applicationjsonToObject(@RequestBody User user) {
log.info(user.getUsername());
return "josn 전송 옴";
}
log를 찍어보면, 원하는 value 값인 cos가 출력된다.
private String username;
작성 후
Generate Getter and Setters ... 를 선택하면
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
이 부분들이 자동적으로 생성된다.