스프링부트 Controller - http body 데이터 전송하기

ezi·2023년 9월 19일
0

스프링부트

목록 보기
1/3

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

1. xwwwformurlencoded

@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 가 담긴 것을 확인할 수 있다.

2. text/plain

@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로 찍어서 확인해보면,

3. josn

@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로 찍어서 확인해보면,

4. json - value 값만 가져오기

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;
	}

이 부분들이 자동적으로 생성된다.

profile
차곡차곡

0개의 댓글