亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring rest controller中如何接收application/x-www-form-

Spring rest controller中如何接收application/x-www-form-

偶然的你 2023-05-17 14:21:41
我正在嘗試編寫一個接收 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;

    }


查看完整回答
反對 回復 2023-05-17
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

嘗試@ResponseBody。然后,更改為 a String,而不是 a MultiValueMap,以查看正文是否包含在請求中。



查看完整回答
反對 回復 2023-05-17
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

您不要@RequestParam在 POST 請求中使用,因為數據不在 URL 中,而在 GET 請求中。

您應該使用@RequestBody(?doc?) 并注冊適當的HttpMessageConverter。您很可能應該使用:FormHttpMessageConverter


查看完整回答
反對 回復 2023-05-17
  • 3 回答
  • 0 關注
  • 355 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號