JAVA/공부
content-Type : application/x-www-form-urlencoded
PeepPeep!
2025. 2. 3. 23:23
application/x-www-form-urlencoded는 html의 form의 기본 Content-Type
요즘은 자주 사용하지 않지만 여전히 사용하는 경우가 종종 존재합니다.
(요즘은 application/json 많이 사용)
json과 x-www-form-urlencoded 차이
- application/json : {key: value}의 형태로 전송
- application/x-www-form-urlencoded : key=value&key=value의 형태로 전송
예시
@Test
@DisplayName("/posts 요청시 Hello world를 출력한다.")
void test() throws Exception {
//expection
mockMvc.perform(post("/posts")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.param("title","글제목입니다")
.param("content", "글 내용입니다")
) //application/json
.andExpect(status().isOk()) // 통신이 정상일때
.andExpect(content().string("Hello World"))
.andDo(print()); // 요청한 로그 보기 위해
}
해당 api 통신을 통해 값 가져오는 방법
1. @RequestParam String titile
@PostMapping("/posts")
public String post(@RequestParam String title, @RequestParam String content) {
log.info("title ={} content={}", titie, content);
return "Hello World";
}
2. @RequestParam Map<String, String>
@PostMapping("/posts")
public String post(@RequestParam Map<String, String> params) {
log.info("params ={}", params);
String title = params.get("title");
return "Hello World";
}
3. @ModelAttribute
@PostMapping("/posts")
public String post(@ModelAttribute PostCreate params) {
log.info("params ={}", params.toString());
return "Hello World";
}