1. 程式人生 > >Spring MVC獲取不到post提交的multipart/form-data格式的資料

Spring MVC獲取不到post提交的multipart/form-data格式的資料

我們在寫介面時,經常會用postman測試介面。前段時間我寫介面時,發現postform-data提交資料,後端竟然接收不到請求引數,而使用postx-www-form-urlencoded方式提交資料,後端可以接收到引數。為什麼?

postmanform-data是指multipart/form-data,即使用二進位制傳輸資料,並且所有的資料不進行編碼;而x-www-form-urlencoded是對資料編碼後再傳輸。

怎麼使用postmanform-data傳遞引數,並且後端可以接收到引數呢?
spring的配置檔案中配置CommonsMultipartResolver

即可

<bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>

測試介面:

@Controller
@RequestMapping("/device")
public class DeviceController {
    @ResponseBody
    @RequestMapping("/list")
    public Object list(Integer userId){
        if(userId == null){
            return JsonResult.fail(GlobalResultStatus.PARAM_MISSING);
        }
        return JsonResult.success();
    }
}