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";
}
'JAVA > 공부' 카테고리의 다른 글
[프로그래머스|JAVA]홀짝에 따라 다른 값 반환하기 (1) | 2025.01.15 |
---|---|
정적 바인딩 VS 동적 바인딩 (0) | 2025.01.15 |
[프로그래머] 공배수 (0) | 2024.11.06 |
[JAVA] json 파싱하기 :: JSONArray, JSONObject 넘어오는 형태에 따라 값 추출하는 방법, 예시 (0) | 2024.08.26 |
[JAVA] String, StringBuffer, StringBuilder 차이 (0) | 2024.01.31 |