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」)訪問它 不知道如何在彈簧休息控制器的情況下獲取它。