[英]Order of request parameters for content-type application/x-www-form-urlencoded in Spring MVC
[英]How to receive application/x-www-form-urlencoded Request parameters in Spring rest controller
我正在嘗試編寫一個休息端點,該端點接收application / x-www-form-urlencoded。 但是端點不接受@RequestBody或@RequestParam的請求參數
我曾嘗試使用MultiValueMap來獲取請求參數。 但是我總是得到0個參數。 有沒有一種方法可以將請求值獲取到MultiValueMap或其他POJO類。
AD=&value=sometestvalue
這是應用程序/ x-www-form-urlencoded請求正文。 我正在嘗試使用郵遞員發出請求
@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 formData,
HttpServletRequest servletRequest, ServiceContext serviceContext){
log.info("!--REQUEST START--!"+formData.toString());
}
您不能在POST請求上使用@RequestParam
,因為數據不在GET請求中,因此不在URL中。
您應該將@RequestBody
( doc )與注冊適當的HttpMessageConverter一起使用。 您最可能應該使用: FormHttpMessageConverter
嘗試@ResponseBody
。 然后,更改為String
,而不是MultiValueMap
,以查看正文是否進入請求。
您需要使用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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.