我正在尝试编写一个接收 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
提交
取消