嗨它可能看起来像重复但不是。
我正在使用spring boot构建一个rest api,需要在POST请求中获取客户端app发送的form-data。 为了测试目的我正在使用邮递员。到目前为止,我已尝试过以下
@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);
}
这会产生错误“必需字符串参数'注释'不存在”
尝试第二种方式:
@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”)访问它 我不确定如何在弹簧控制器的情况下取出它。
答案 0 :(得分:0)
&#34;必需的字符串参数&#39;评论&#39;不存在&#34;当需要这个参数但你没有发送它时会发生这个错误。
@RequestParam(value =&#34; comment&#34;,required = false) 这将使comment参数可选。所以,如果你错过发送评论参数,那就好了。