【发布时间】:2019-07-20 19:24:45
【问题描述】:
我在处理从 curl 请求到我的 spring-boot 应用程序的参数时遇到问题。
我的控制器发布方法:
@RequestMapping(value = "/cat", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public ResponseEntity addCat(@Valid @ModelAttribute NewCatRequest newCatRequest, BindingResult bindingResult) {
System.out.println( newCatRequest);
if (bindingResult.hasErrors()) {
return ResponseEntity.badRequest().body(bindingResult.getFieldError().getDefaultMessage());
}
int rowsAffected = catsRepository.saveCat(newCatRequest.getName(), newCatRequest.getColor(), newCatRequest.getTail_length(), newCatRequest.getWhiskers_length());
if (rowsAffected == 1) {
return ResponseEntity.ok().body(newCatRequest);
} else {
return ResponseEntity.badRequest().body("There was an unexpected error while trying to create cat for you :(");
}
}
问题是:当我试图用 curl 发送这个时:
curl -X 发布http://localhost:8080/cat\ -d "{\"name\": \"Tihon\", \"color\": \"red & white\", \"tail_length\": 15, \"whiskers_length\": 12}"
我在“newCatRequest”中有所有空参数: NewCatRequest{name='null',color='null',tail_length=0,whiskers_length=0}
但是当我尝试对 Postman 做同样的事情时(POST 方法,x-www-form-urlencoded 在正文中使用我的参数)我有一个有效的结果: Result from Postman
请帮助我了解问题所在。
【问题讨论】:
标签: java rest spring-boot http curl