【发布时间】:2018-03-15 17:57:16
【问题描述】:
我正在尝试向我的控制器发送 POST 请求,但无法传递任何类型的任何参数,除非我决定使用 JSON。我的目标是将字符串和文件传递给我的控制器,但我不断收到Required request part 'xxx' is not present 错误。
@RestController
public class ConfigurationController {
@PostMapping(value = "/config")
public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("file") MultipartFile uploadfile){
return ResponseEntity.ok().body(null);
}
}
我这里不能有文件。同样,如果我尝试:
@RestController
public class ConfigurationController {
@PostMapping(value = "/config")
public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("name") String name){
return ResponseEntity.ok().body(null);
}
}
同样的事情我在这里无法命名。
我正在通过 Postman 发送请求,如下图所示:
唯一的标头标签用于授权。我没有任何 Content-Type 标头,我尝试添加 multipart/form-data 但没有帮助。
我可以传递字符串参数的唯一方法是添加到 URL。所以关注http://localhost:8080/SearchBox/admin/config?name=test 可以,但这不是我想要的。我想要正文部分中的字符串和文件参数。
我也通过 CURL 进行了测试:
curl -X POST -H "Authorization:Bearer myToken" -H "Content-Type:Multipart/form-data" http://localhost:8080/SearchBox/admin/config --data 'pwd=pwd'
curl -X POST -H "Authorization:Bearer myToken"http://localhost:8080/SearchBox/admin/config --data 'pwd=pwd'
curl -H "Authorization:Bearer myToken" -F file=@"/g123.conf" http://localhost:8080/SearchBox/admin/config
【问题讨论】:
-
对于其他有类似问题的人,这可能是您正在寻找的解决方案:stackoverflow.com/questions/40488585/…
-
您必须在 addConfig 中添加 bean multipartResolver 以防您使用 spring mvc。像这样baeldung.com/spring-file-upload
标签: java spring rest postman spring-restcontroller