我正在嘗試編寫一個接收 application/x-www-form-urlencoded 的 rest 端點。但是端點不接受@RequestBody 或@RequestParam 的請求參數我試過使用 MultiValueMap 來獲取請求參數。但我總是得到 0 個參數。有沒有辦法將請求值獲取到 MultiValueMap 或其他一些 POJO 類。AD=&value=sometestvalue- 這是 application/x-www-form-urlencoded requestbody。我正在嘗試使用郵遞員來完成請求@RequestMapping(value = "/test/verification/pay/{id}", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)@ResponseBodypublic Response testVerificationPay(@PathVariable("id") long id, @RequestParam MultiValueMap formData, HttpServletRequest servletRequest, ServiceContext serviceContext){ log.info("!--REQUEST START--!"+formData.toString()); }
3 回答

慕俠2389804
TA貢獻1719條經驗 獲得超6個贊
你需要使用MultiValueMap<String, String>
@RequestMapping(value = "/test/verification/pay/{id}", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
@ResponseBody
public Response testVerificationPay(@PathVariable("id") long id, @RequestParam MultiValueMap<String, String> formData) {
System.out.println("!--REQUEST START--!" + formData.toString());
return null;
}

呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
您不要@RequestParam
在 POST 請求中使用,因為數據不在 URL 中,而在 GET 請求中。
您應該使用@RequestBody
(?doc?) 并注冊適當的HttpMessageConverter。您很可能應該使用:FormHttpMessageConverter
添加回答
舉報
0/150
提交
取消