Postman 在使用post方式提交表單后使用request.getParameter 無法獲取參數


最近項目使用postman模擬測試接口調用,get方式沒有問題。但是測試post的時候,使用request.getParameter獲取參數卻獲取不到參數。

 

 

 

代碼端更換了很多種寫法,都獲取不到參數信息。包括會用bean對象接口,使用@RequestParam 綁定參數入參 。

后台在debug到request詳細信息的時候 注意到request的content-type參數為multipart/form-data 。 問題就出在這個參數上,我們使用表單提交參數的時候默認的content-type為application/x-www-form-urlencoded。這種情況下使用request.getParameter可以獲取參數。Postman的body選項里面的第一個按鈕 form-data就是的conten-type 是multipart/form-data。當選擇這種類型的時候可以添加文件類型的參數。

而對於默認的表單提交需要選擇第二個選項

這時候headers 里面的Content-Type 為application/x-www-form-urlencoded 這和默認的表單提交方式是一樣的。所以修改postman的body傳參方式即可解決。

注:這個問題當時出現之后我一直以為是由於shiro框架在過濾器中把request里面的流讀取過了導致后面無法獲取參數的情況,影響了很多的排查時間。之后可以注意關注request頭信息里面的Content-Type字段。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM