后端如何接收格式為x-www-form-urlencoded的數(shù)據(jù)
1.x-www-form-urlencoded是什么?
x-www-form-urlencoded紙面翻譯即所謂url格式的編碼,是post的默認Content-Type,其實就是一種編碼格式,類似json也是一種編碼傳輸格式。form表單中使用
form的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,默認為application/x-www-form-urlencoded。
2.x-www-form-urlencoded類型后端怎么接收
用登錄案例來作說明,登錄的時候需要輸入賬戶跟密碼。但是前端使用的是x-www-form-urlencoded類型傳輸,所以我們也需要使用x-www-form-urlencoded類型接收
2.1后端Controller層接收代碼一
@ApiOperation(value = "用戶登陸獲取token", position = 5, notes = "用戶登陸獲取token") @ApiImplicitParams({ @ApiImplicitParam(name = "account", value = "用戶名", dataType = "String"), @ApiImplicitParam(name = "password", value = "密碼", dataType = "String"), }) @RequestMapping(value="/login",method= RequestMethod.POST) public Result loginPC(String account ,String password ) throws Exception { Map map = UserService.LoginUer(account, password); return Result.success(map); }
需要使用到@ApiImplicitParam,若有多個參數(shù)的話使用@ApiImplicition進行包裹。
接收x-www-form-urlencoded類型的關(guān)鍵點就在于@ApiImplicitParam。免去了使用@RequestBody在寫一個接收類的繁瑣步驟,加上@ApiImplicitParam之后直接接收即可。
若使用application/x-www-form-urlencoded類型傳輸數(shù)據(jù)過來,后端使用@ReposeBody接收,或出現(xiàn)報錯
Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported
若出現(xiàn)上邊的錯誤,只需要按照上邊代碼修改一些接收參數(shù)即可
所以使用application/x-www-form-urlencoded類型傳輸數(shù)據(jù)過來,需要使用@ApiImplicitParam說明參數(shù)并且接收
2.2@ApiImplicitParam說明
@ApiImplicitParam是一個標注方法參數(shù)的注解
注解內(nèi)的屬性有
name:參數(shù)名
value:參數(shù)的中文含義
required:是否必須
dataType:參數(shù)類型
paramType:參數(shù)所放位置
defaultValue:參數(shù)的默認值
其中,paramType可選值有header、query、path
header標注為從@RequestHeader中獲取
query標注為從@RequestParam中獲取
path從標注為@PathVariable中獲取
方法中有多個參數(shù)時,使用@ApiImplicitParams包圍
@ApiImplicitParams({ @ApiImplicitParam(name = "account", value = "用戶名", dataType = "String"), @ApiImplicitParam(name = "password", value = "密碼", dataType = "String"), })
2.3后端Controller層接收代碼二
x-www-form-urlencoded:表單的形式,表單格式??梢灾苯咏邮誅TO數(shù)據(jù),方法上不使用@ApiImplicitParams 。直接整個dto接收數(shù)據(jù),不需要加上@ReposeBody.按照下方代碼接收就可以達到目的
@ApiOperation(value="系統(tǒng)查詢", position = 2, notes="系統(tǒng)查詢",response =SysUserDTO.class) @RequestMapping(value = "/query",method = RequestMethod.GET ) public Result query(@Validated ConditionDTO dto, @Validated PageDTO page) throws Exception{ PageResultDTO<SysUserRDTO> result = UserService.query(dto, page); return Result.success(result); }
3.x-www-form-urlencoded測試軟件怎么測試
以下是使用apipost進行測試的示例
總結(jié)
到此這篇關(guān)于后端如何接收格式為x-www-form-urlencoded數(shù)據(jù)的文章就介紹到這了,更多相關(guān)后端接收x-www-form-urlencoded數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解JDBC的概念及獲取數(shù)據(jù)庫連接的5種方式
Java?DataBase?Connectivity是將Java與SQL結(jié)合且獨立于特定的數(shù)據(jù)庫系統(tǒng)的應(yīng)用程序編程接口,一種可用于執(zhí)行SQL語句的JavaAPI。本文主要介紹了JDBC的概念及獲取數(shù)據(jù)庫連接的5種方式,需要的可以參考一下2022-09-09Java異常(Exception)處理以及常見異??偨Y(jié)
在《Java編程思想》中這樣定義異常,阻止當前方法或作用域繼續(xù)執(zhí)行的問題,雖然java中有異常處理機制,但是要明確一點,決不應(yīng)該用"正常"的態(tài)度來看待異常,這篇文章主要給大家介紹了關(guān)于Java異常(Exception)處理以及常見異常的相關(guān)資料,需要的朋友可以參考下2021-10-10MyBatis實現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)
這篇文章主要介紹了MyBatis實現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02將本地JAR文件手動添加到Maven本地倉庫的實現(xiàn)過程
在Java開發(fā)中,使用Maven作為項目管理工具已經(jīng)成為了主流的選擇,Maven提供了強大的依賴管理功能,可以輕松地下載和管理項目所需的庫和工具,在某些情況下,你可能會需要將本地下載的JAR文件手動添加到Maven的本地倉庫中,這篇博客將詳細介紹如何實現(xiàn)這一過程2024-10-10ElasticSearch學習之文檔API相關(guān)操作
這篇文章主要為大家介紹了ElasticSearch學習之文檔API相關(guān)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01spring.mvc.servlet.load-on-startup屬性方法源碼解讀
這篇文章主要介紹了spring.mvc.servlet.load-on-startup的屬性方法源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12