0
嗨它可能看起来像重复但不是。在弹簧控制器中获取表单数据
我正在构建一个使用spring启动的休息api,并且需要在POST请求中获取客户端应用程序发送的表单数据。 用于测试目的我正在使用邮递员。到目前为止,我已经试过下面
@PostMapping("/feed/comment/add/{feedId}")
public ResponseEntity<BaseResponse> addComment(@RequestHeader(name = Constants.USER_ID_HEADER) int userId,
@PathVariable("feedId") int feedId,
@RequestParam("comment") String comment
) {
LOGGER.info("Received add comment request with comment:"+comment);
return new ResponseEntity<BaseResponse>(new BaseResponse("You are not feed owner", RESPONSETYPE.ERROR), HttpStatus.UNAUTHORIZED);
}
这给了错误 “String类型,必需的参数 '注释' 不存在”
方式二试:
@PostMapping("/feed/comment/add/{feedId}")
public ResponseEntity<BaseResponse> addComment(@RequestHeader(name = Constants.USER_ID_HEADER) int userId,
@PathVariable("feedId") int feedId,
@RequestParam Map<String, String> values
) {
for(String key: values.keySet()) {
System.out.println(key+":"+values.get(key));
}
return new ResponseEntity<BaseResponse>(new BaseResponse("You are not feed owner", RESPONSETYPE.ERROR), HttpStatus.UNAUTHORIZED);
}
这给有线输出:
------WebKitFormBoundarymk97RU1BbJyR0m3F
Content-Disposition: form-data; name:"comment"
test comment
------WebKitFormBoundarymk97RU1BbJyR0m3F--
我很确定,使用平面servlet我可以使用request.getParameter(“comment”)访问它 不知道如何在弹簧休息控制器的情况下获取它。