1. 程式人生 > >springBoot PUT請求接收不了引數的解決辦法

springBoot PUT請求接收不了引數的解決辦法

   做專案的時候,想把介面寫標準點,於是在更新內容的時候採用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.,之後終於可以獲取引數了,如下