HTTP協議-后端接收請求

起因就是不知道post這個請求體中這些格式有什么區別,后端又怎么去接收這些不同格式的內容
在這里插入圖片描述

Get請求

get請求是比較簡單的一類
正常的直接用參數接收(不寫的話名字要匹配)或者@RequestParam都可以接收,用對象綁定也可以
resultful請求有所不同
Get-resultful格式請求 @PathVariable

@RequestMapping("/info/{id}")  // 未指定 HTTP 方法,默認支持所有方法
public R info(@PathVariable("id") Long id) {SkuFullReductionEntity skuFullReduction = skuFullReductionService.getById(id);return R.ok().put("skuFullReduction", skuFullReduction);
}

post請求

post請求和其他的PUT,DELETE等請求都一樣只有GET和他們不一樣

📌 1. application/x-www-form-urlencoded(表單默認格式)

數據以 key=value 形式編碼,用 & 分隔,例如:

username=John&age=25

適用于 簡單鍵值對,不支持文件上傳。
后端接收方式
? 使用 @RequestParam 或直接綁定到方法參數

@PostMapping("/submit")
public String submitForm(@RequestParam("username") String username,  // 單個參數接收@RequestParam("age") int age
) {// 業務邏輯
}// 或者自動綁定到對象
@PostMapping("/submit")
public String submitForm(UserForm form) {  // UserForm 需有 username 和 age 屬性// 業務邏輯
}

📌 2. multipart/form-data(表單文件上傳)!!!

在這里插入圖片描述
為什么在apifox都是鍵值對的形式,感覺這個請求體就很奇怪吶,不是鍵值對(和1不同),一句話說就是不讓用戶考慮底層實現,方便快捷,apifox會封裝成這種形式發送

其實2就比1多一個文件上傳功能,就是可以傳文件
相當于既可以傳文件也可以傳string普通鍵值
在這里插入圖片描述
后端接收
@RequestParam接收普通鍵值
@RequestPart接收文件類型

@PostMapping("/upload")
public String handleUpload(@RequestParam("username") String name,     // 文本字段@RequestPart("avatar") MultipartFile file  // 文件字段
) {// 1. 獲取文本字段System.out.println("用戶名:" + name);  // 輸出:John// 2. 處理文件file.transferTo(new File("/uploads/" + file.getOriginalFilename()));return "上傳成功!";
}

📌 3. application/json(JSON 數據)!!!

數據格式
數據以 JSON 格式傳輸,例如:

{"username": "John","age": 25,"hobbies": ["coding", "reading"]
}

后端接收方式
? 使用 @RequestBody + DTO 對象

@PostMapping("/create")
public String createUser(@RequestBody UserDTO userDTO) {// userDTO 會自動反序列化為 Java 對象// 例如 userDTO.getUsername() 返回 "John"
}// DTO 示例
public class UserDTO {private String username;private int age;private List<String> hobbies;// getters/setters
}

json數組/簡單數組

前端payload

[{"catId":23,"sort":0},{"catId":22,"sort":1,"parentCid":1,"catLevel":2},{"catId":24,"sort":2}]

在這里插入圖片描述
后端這樣就可以接收到對應的參數
注解使用 @RequestBody 也算json數據

public R updateSort(@RequestBody CategoryEntity[] category)

簡單數組也可以這樣,相當于一個值就是一個json字符串唄
在這里插入圖片描述
在這里插入圖片描述

📌 4. application/xml(XML 數據)

數據格式
數據以 XML 格式傳輸,例如:

<user><name>John</name><age>25</age>
</user>

后端接收方式
? 使用 @RequestBody + JAXB 注解對象(需配置 XML 解析器)

@PostMapping("/xml")
public String handleXml(@RequestBody UserXml userXml) {// userXml.getName() 返回 "John"
}// XML 映射對象
@XmlRootElement
public class UserXml {private String name;private int age;// getters/setters
}

📌 5. binary data(二進制流)

數據格式
數據為原始二進制(如圖片、PDF、音頻等),例如:

(文件的二進制流...)

后端接收方式
? 使用 InputStream 或 byte[]

@PostMapping("/binary")
public String handleBinary(InputStream dataStream) {// 手動讀取流數據
}// 或者直接接收字節數組
@PostMapping("/binary")
public String handleBinary(@RequestBody byte[] data) {// 直接操作字節數組
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86919.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86919.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86919.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTML5 實現的圣誕主題網站源碼,使用了 HTML5 和 CSS3 技術,界面美觀、節日氛圍濃厚。

以下是一個 HTML5 實現的圣誕主題網站源碼&#xff0c;使用了 HTML5 和 CSS3 技術&#xff0c;界面美觀、節日氛圍濃厚。它包括&#xff1a; 圣誕樹動畫 &#x1f384;雪花飄落特效 ??圣誕祝福語 &#x1f381;響應式布局&#xff0c;適配移動端 你可以將代碼保存為 index.…

Spring Cloud Bus 和 Spring Cloud Stream

Spring Cloud Bus 和 Spring Cloud Stream 都是 Spring Cloud 生態中的消息通信組件&#xff0c;但它們的定位和使用場景有顯著區別&#xff1a; 1. Spring Cloud Bus 核心定位&#xff1a;分布式系統的消息廣播&#xff08;配置刷新、事件傳播&#xff09;。 典型場景&#x…

磁懸浮軸承位移信號的高精度估計:卡爾曼濾波算法深度解析

無需位移傳感器,濾波算法如何實現微米級精度? 磁懸浮軸承作為革命性的非接觸式支承技術,憑借無磨損、無需潤滑、高轉速等優勢,在飛輪儲能、高速電機、人工心臟泵和航空航天領域獲得了廣泛應用。其核心控制依賴于對轉子位移信號的高精度實時檢測,傳統電渦流傳感器雖能提供位…

DAY 43 預訓練模型

目錄 一、預訓練的概念 二、 經典的預訓練模型 2.1 CNN架構預訓練模型 2.2 Transformer類預訓練模型 2.3 自監督預訓練模型 三、常見的分類預訓練模型介紹 3.1 預訓練模型的發展史 3.2 預訓練模型的訓練策略 知識點回顧&#xff1a; 預訓練的概念常見的分類預訓練模型圖像…

Redis:事物

&#x1f308; 個人主頁&#xff1a;Zfox_ &#x1f525; 系列專欄&#xff1a;Redis &#x1f525; 什么是事務 Redis的事務和MySQL的事務概念上是類似的.都是把?系列操作綁定成?組.讓這?組能夠批量執?. 但是注意體會Redis的事務和MySQL事務的區別: 弱化的原?性:redi…

CppCon 2018 學習:An allocator is a handle to a heap Lessons learned from std::pmr

“An allocator is a handle to a heap — Lessons learned from std::pmr” 翻譯過來就是&#xff1a;“分配器&#xff08;allocator&#xff09;是對堆&#xff08;heap&#xff09;的一種句柄&#xff08;handle&#xff09;——從 std::pmr 中學到的經驗”。 基礎概念 分…

設備健康實時監測方法演進:從傳感網絡到AI決策樹的工業智能實踐

引言&#xff1a;當設備運維遇上AIoT革命 在工業4.0進程中&#xff0c;?毫秒級設備狀態捕獲能力正成為智能工廠的核心競爭力。傳統監測方法因數據滯后、診斷粗放被詬病&#xff0c;本文將深入探討三大前沿實時監測技術路徑&#xff0c;并揭秘中訊燭龍系統如何通過深度強化學習…

劍指offer53_二叉樹的深度

二叉樹的深度 輸入一棵二叉樹的根結點&#xff0c;求該樹的深度。 從根結點到葉結點依次經過的結點&#xff08;含根、葉結點&#xff09;形成樹的一條路徑&#xff0c;最長路徑的長度為樹的深度。 數據范圍 樹中節點數量 [ 0 , 500 ] [0,500] [0,500]。 樣例 輸入&#…

探秘AI的秘密:leaked-system-prompts

揭秘:揭秘系統提示合集背后的秘密 在當今這個人工智能技術迅速發展的時代,了解和使用大型語言模型(LLM)已成為技術愛好者、開發者和研究人員的共同目標。而作為核心組成部分,系統提示(system prompts)的設計和應用直接影響了LLM的表現和功能。今天, 我們將為大家揭示一…

Gaming Mode四大功能(VRR、QMS、QFT、ALLM)

HDMI 2.1定義的Gaming Mode四大功能&#xff08;VRR、QMS、QFT、ALLM&#xff09;通過協同優化幀傳輸、刷新率同步與延遲控制&#xff0c;顯著提升了游戲和影音的流暢性與響應速度。以下是這些功能的詳細解析及其應用價值&#xff1a; &#x1f504; 1. 可變刷新率&#xff08;…

數據庫總結(關系代數-函數依賴-范式)

以下是關系代數中基本操作的詳細說明&#xff1a; 并&#xff08;Union&#xff09; 關系R和S的并操作表示為R ∪ S&#xff0c;要求R和S具有相同的屬性集&#xff08;并相容性&#xff09;。結果包含所有屬于R或S的元組&#xff0c;自動去除重復項。 示例&#xff1a; R …

react經驗:在nextjs中使用motion組件

什么是motion組件&#xff1f; 一種動畫組件 motion組件文檔 在nextjs中的應用步驟 1.安裝motion npm i framer-motion2.在next.config.js中配置轉義 export default {transpilePackages: [framer-motion] }3.開始應用 **注意要點&#xff1a;**在服務端渲染不可直接用&am…

怎樣大語言模型 遵守規則

如何讓應用中的提示工程更能適應未來變化 目錄 如何讓應用中的提示工程更能適應未來變化怎樣大語言模型 遵守規則提示詞 很有效:Memorize these rules提示可分為穩定組件和易變組件怎樣大語言模型 遵守規則 實驗背景:讓大語言模型可靠地遵守規則很難,尤其是規則數量增多時。…

如何通過SSL證書配置防止源站IP泄露 - 全面防護指南

問題背景&#xff1a;SSL證書如何導致源站IP泄露 近期多位站長反饋&#xff0c;即使已部署高防CDN并做好源站IP保密工作&#xff0c;服務器仍頻繁遭受DDoS攻擊。經深入排查&#xff0c;發現問題根源在于SSL證書。當前網絡環境中存在大量爬蟲工具24小時不間斷掃描全網IP地址&am…

醫院信息化發展要經過哪幾個階段

目前&#xff0c;幾乎所有的醫院都離不開信息技術的建設和支持。沒有信息技術&#xff0c;醫院的業務可能無法繼續。醫院信息化的發展主要經歷三個階段&#xff0c;即醫院管理信息化階段、臨床管理信息化階段和醫療智能化階段。從基礎設施的角度來看&#xff0c;每個階段都有不…

【Vscode】Vscode切換成中文語言

安裝中文語言包 啟動 VSCode。按下Ctrl Shift X&#xff08;或者點擊左側邊欄的擴展圖標&#xff09;&#xff0c;打開擴展面板。在搜索框中輸入Chinese (Simplified)&#xff0c;在搜索結果里找到Chinese (Simplified) Language Pack for Visual Studio Code并點擊安裝按鈕…

【百日精通JAVA | 數據結構篇】 一文了解泛型體系

一、初識泛型 在推出泛型以前&#xff0c;程序員可以創建一個元素類型Object的集合&#xff0c;該集合能夠存儲任意的數據類型對象&#xff0c;而在使用該集合的過程中&#xff0c;需要明確知道存儲每個元素的類型&#xff0c;否則容易引發ClassCastException異常。 泛型是JD…

賦能 Java 工程,飛算科技重新定義智能開發

在數字經濟蓬勃發展的當下&#xff0c;軟件開發行業正經歷著前所未有的變革。飛算科技作為一家自主創新型的數字科技公司&#xff0c;始終以互聯網科技、大數據、人工智能等前沿技術為根基。憑借團隊在相關領域多年積累的深厚實踐經驗&#xff0c;公司深度融合技術與應用&#…

【藍牙】Linux Qt4藍牙設備列表刷新加載采用什么策略,使用什么對應的Linux命令或dbus接口

在 Linux 系統中&#xff0c;使用 Qt4 開發藍牙設備列表刷新功能時&#xff0c;通常會結合 BlueZ 藍牙協議棧 和 D-Bus 通信機制 實現對藍牙設備的發現與管理。以下是常見的實現策略和對應的命令或接口。 &#x1f9e9; 一、藍牙設備列表刷新策略 1. 主動掃描&#xff08;Scan…

產品背景知識——CIFS、SMB 和 Samba

產品背景知識——CIFS、SMB 和 Samba 1. SMB&#xff08;Server Message Block&#xff09; 定義&#xff1a; SMB 是一種網絡協議&#xff0c;用于在計算機之間共享文件、打印機、串口等資源。它由 IBM 在 1980 年代開發&#xff0c;后被微軟采用并擴展。 發展歷程&#xff…