gpt4 book ai didi

java - 如何一起使用@RequestBody和@RequestParam

转载 作者:行者123 更新时间:2023-12-02 01:58:50 25 4
gpt4 key购买 nike

我尝试使用 @RequestBody@RequestParam 通过 Postman 发送 JSON 和多个文件,但它不起作用。是否可以在 API 中同时使用这两种注释?

@RequestMapping(value = "/save/product/test", method = RequestMethod.POST)
public ResponseEntity<?> save(@Valid @RequestBody ProductVo productVo, @RequestParam("files") @NotNull @NotBlank MultipartFile[] uploadfiles) {

System.out.println("body " + productVo.toString());
for (MultipartFile file : uploadfiles) {
System.out.println(file.getOriginalFilename());
System.out.println(file.getContentType());
System.out.println(file.getName());
System.out.println(file.getSize());

}
return new ResponseEntity<APIResponse>(this.apiResponse, HttpStatus.NO_CONTENT);
}

最佳答案

@RequestParam 从 uri 获取参数,您实际上是在尝试实现其他目标。

这是一个示例 Controller ,采用 json 正文和多部分文件:

@RestController
@RequestMapping("/users")
public class UserController {

UserService userService;

@Autowired
public UserController(UserService userService) {
this.userService = userService;
}

@PostMapping({"/", ""})
public ResponseEntity<User> post(@RequestPart("request") UserCreateRequest request, @RequestPart("file") MultipartFile file) throws IOException {

String photoPath = UUID.randomUUID() + file.getOriginalFilename().replaceAll(" ", "").trim();

// other logic

return ResponseEntity.ok(userService.create(request));
}
}

关于java - 如何一起使用@RequestBody和@RequestParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51917110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com