springBoot PUT請求接收不了引數的解決辦法
阿新 • • 發佈:2019-02-01
做專案的時候,想把介面寫標準點,於是在更新內容的時候採用put提交內容,但是提交內容時總是獲取不到引數,總是選擇引數為null。
首先貼出我的put的方法控制器的程式碼
和之前的一般請求處理的一樣,開啟除錯模式除錯了一下,發現傳上來的token引數為null。
百思不得其解,於是在網上尋找了一下資料,但是沒有關於spring boot 解決這種問題的方法,於是就直接找了下spring關於這方面的問題,這裡給出了一種解決方法。
<filter>
<filter-name>HttpMethodFilter</filter-name >
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在web.xml新增filter來允許所有的put方法,來允許所有的put請求方法帶參訪問。
但是Spring boot是沒有XML配置的,於是就試了試看可不可以通過註解的方式來配置HttpPutFormContentFilter過濾器。
import org.springframework.stereotype.Component;
import org.springframework.web.filter.HttpPutFormContentFilter;
/**
* Created by Administrator on 2016/8/3.
*/
@Component
public classPutFilterextendsHttpPutFormContentFilter{
}
出乎意料的可以,運行了一下。
在列印的log中可以發現,我們設定的putFilter已經生效了,於是從新的訪問了一下介面,發現接受的引數還是為null,但是需要把form表單的enctype屬性設定為application/x- www-form-urlencoded.,之後終於可以獲取引數了,如下