最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Postman中四種請(qǐng)求體格式用法全解析及SpringBoot接收指南

 更新時(shí)間:2025年08月06日 09:59:57   作者:zk_xyb  
在接口開發(fā)中,請(qǐng)求體格式的選擇直接影響數(shù)據(jù)傳輸?shù)男屎驼_性,本文將詳細(xì)解析Postman中四種請(qǐng)求體格式的區(qū)別以及SpringBoot接收指南,感興趣的小伙伴可以了解下

在接口開發(fā)中,請(qǐng)求體格式的選擇直接影響數(shù)據(jù)傳輸?shù)男屎驼_性。Postman 作為主流的接口調(diào)試工具,提供了 Form Data、x-www-form-urlencoded、Raw、Binary 四種常用請(qǐng)求體格式。本文將詳細(xì)解析這四種格式的區(qū)別,重點(diǎn)對(duì)比 Form Data 與 x-www-form-urlencoded,并結(jié)合 Spring Boot 示例說明如何正確接收參數(shù)。

一、四種請(qǐng)求體格式的核心區(qū)別

Postman 的 Body 選項(xiàng)中,四種格式的設(shè)計(jì)初衷和適用場(chǎng)景差異顯著,具體如下:

1. Form Data(multipart/form-data)

本質(zhì):通過“分隔符(boundary)”分割多個(gè)鍵值對(duì)的復(fù)合格式,支持文本和二進(jìn)制數(shù)據(jù)(如文件)。

核心特點(diǎn)

  • 每個(gè)字段獨(dú)立成塊,包含字段名、內(nèi)容類型(如文本/文件)等元信息。
  • 非 ASCII 字符(如中文、特殊符號(hào))無需手動(dòng)編碼,直接傳輸原始字節(jié)。
  • 支持同時(shí)傳遞文本和文件(例如:上傳用戶頭像時(shí),同時(shí)傳遞用戶 ID 和昵稱)。

請(qǐng)求體示例(簡(jiǎn)化版):

--Boundary123456  // 分隔符(自動(dòng)生成)
Content-Disposition: form-data; name="username"  // 文本字段名

張三  // 字段值(中文無需編碼)
--Boundary123456
Content-Disposition: form-data; name="avatar"; filename="head.jpg"  // 文件字段
Content-Type: image/jpeg  // 文件類型

[二進(jìn)制文件內(nèi)容]  // 直接傳輸文件字節(jié)
--Boundary123456--  // 結(jié)束符

2. x-www-form-urlencoded

本質(zhì):將鍵值對(duì)拼接為字符串(如 key1=value1&key2=value2),并對(duì)非 ASCII 字符進(jìn)行 URL 編碼。

核心特點(diǎn)

  • 僅支持文本數(shù)據(jù),不支持文件傳輸(因編碼后為純文本,無法承載二進(jìn)制)。
  • 數(shù)據(jù)體積小,編碼后為單一字符串,適合簡(jiǎn)單表單提交(如登錄、搜索框查詢)。

請(qǐng)求體示例

username=%E5%BC%A0%E4%B8%89&age=20  // "張三"被URL編碼為%E5%BC%A0%E4%B8%89

3. Raw

本質(zhì):純文本格式,支持 JSON、XML、HTML 等結(jié)構(gòu)化數(shù)據(jù),需手動(dòng)指定 Content-Type

核心特點(diǎn)

  • 適合傳遞復(fù)雜結(jié)構(gòu)化數(shù)據(jù)(如 API 接口的 JSON 請(qǐng)求體)。
  • Postman 會(huì)根據(jù)選擇的格式自動(dòng)設(shè)置 Content-Type(例如:選 JSON 則自動(dòng)添加 application/json 頭)。

常見場(chǎng)景:后端接口要求接收 JSON 格式的用戶信息(如 {"name":"張三","age":20})。

4. Binary

本質(zhì):二進(jìn)制數(shù)據(jù)流,對(duì)應(yīng) Content-Type: application/octet-stream

核心特點(diǎn)

  • 僅支持單個(gè)二進(jìn)制文件(如上傳壓縮包、圖片),無鍵值對(duì)概念。
  • 直接傳輸文件原始字節(jié),適合純文件上傳場(chǎng)景(如“上傳附件”功能)。

二、重點(diǎn):Form Data 與 x-www-form-urlencoded 的核心區(qū)別

雖然兩者都以鍵值對(duì)形式傳輸數(shù)據(jù),但在編碼方式、支持類型、適用場(chǎng)景上有本質(zhì)區(qū)別,具體對(duì)比如下:

對(duì)比維度Form Data(multipart/form-data)x-www-form-urlencoded
編碼方式用分隔符分割多個(gè)字段,每個(gè)字段獨(dú)立成塊所有字段拼接為單一字符串,URL編碼
支持?jǐn)?shù)據(jù)類型文本 + 二進(jìn)制文件(如圖片、文檔)僅支持文本(無法傳輸文件)
非ASCII字符處理直接傳輸原始字節(jié)(無需編碼)強(qiáng)制URL編碼(如中文→%E5%BC%A0…)
數(shù)據(jù)體積較大(含分隔符和元信息)較?。冏址?/td>
適用場(chǎng)景上傳文件、混合文本與二進(jìn)制數(shù)據(jù)簡(jiǎn)單表單提交(登錄、搜索、參數(shù)提交)
Spring Boot接收差異支持 MultipartFile 接收文件僅支持文本參數(shù),無法接收文件

一句話總結(jié):如果需要傳文件,必須用 Form Data;如果只是簡(jiǎn)單文本提交,x-www-form-urlencoded 更輕量。

三、Postman 中如何設(shè)置四種格式

1. Form Data 設(shè)置

步驟:Body → 選擇 form-data → 點(diǎn)擊“+”添加鍵值對(duì)。

  • 文本參數(shù):默認(rèn)選“Text”,直接輸入鍵和值(如 username: 張三)。
  • 文件參數(shù):選擇“File”,點(diǎn)擊“Select Files”上傳文件(如 avatar: head.jpg)。

注意:Postman 會(huì)自動(dòng)添加 Content-Type: multipart/form-data 及分隔符,無需手動(dòng)設(shè)置。

2. x-www-form-urlencoded 設(shè)置

步驟:Body → 選擇 x-www-form-urlencoded → 直接添加鍵值對(duì)(如 name: 張三、age: 20)。

注意:Postman 會(huì)自動(dòng)對(duì)非 ASCII 字符編碼(如“張三”→%E5%BC%A0%E4%B8%89),并設(shè)置 Content-Type: application/x-www-form-urlencoded。

3. Raw 設(shè)置

步驟:Body → 選擇 raw → 右側(cè)下拉框選格式(如 JSON)→ 輸入對(duì)應(yīng)格式內(nèi)容(如 {"name":"張三","age":20})。

注意:格式需與內(nèi)容匹配(如選 JSON 就必須輸入合法 JSON 字符串)。

4. Binary 設(shè)置

步驟:Body → 選擇 binary → 點(diǎn)擊“Select File”選擇單個(gè)二進(jìn)制文件(如 test.zip)。

注意:一次只能傳一個(gè)文件,無鍵名,僅傳輸文件字節(jié)流。

四、Spring Boot 中如何接收四種格式的參數(shù)

1. 接收 Form Data(multipart/form-data)

適用于文本+文件混合傳輸,用 @RequestParam 接收文本,MultipartFile 接收文件。

@RestController
public class FormDataController {
    // 接收文本+文件
    @PostMapping("/upload")
    public String handleFormData(
            @RequestParam("username") String username,  // 文本參數(shù)
            @RequestParam("avatar") MultipartFile avatar  // 文件參數(shù)
    ) {
        String filename = avatar.getOriginalFilename(); // 獲取文件名
        long fileSize = avatar.getSize(); // 獲取文件大小
        return "收到用戶:" + username + ",上傳文件:" + filename + "(大?。? + fileSize + "字節(jié))";
    }
}

2. 接收 x-www-form-urlencoded

適用于純文本鍵值對(duì),直接用 @RequestParam 接收(與 Form Data 的文本參數(shù)接收方式一致)。

@RestController
public class UrlEncodedController {
    @PostMapping("/submit")
    public String handleUrlEncoded(
            @RequestParam("name") String name,  // 接收文本參數(shù)
            @RequestParam("age") Integer age    // 自動(dòng)轉(zhuǎn)換類型
    ) {
        return "收到用戶:" + name + ",年齡:" + age;
    }
}

3. 接收 Raw

適用于結(jié)構(gòu)化數(shù)據(jù)(如 JSON、XML),用 @RequestBody 綁定到對(duì)象或字符串。

// 定義接收J(rèn)SON的實(shí)體類
public class User {
    private String name;
    private Integer age;
    // 必須提供getter和setter(Spring通過反射賦值)
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public Integer getAge() { return age; }
    public void setAge(Integer age) { this.age = age; }
}

@RestController
public class RawController {
    // 接收J(rèn)SON并自動(dòng)綁定到User對(duì)象
    @PostMapping("/user")
    public String handleJson(@RequestBody User user) {
        return "用戶信息:姓名=" + user.getName() + ",年齡=" + user.getAge();
    }
    
    // 直接接收原始XML文本
    @PostMapping("/xml")
    public String handleXml(@RequestBody String xml) {
        return "收到XML內(nèi)容:" + xml;
    }
}

4. 接收 Binary

適用于單個(gè)二進(jìn)制文件,用 MultipartFile 接收(與 Form Data 的文件接收方式相同)。

@RestController
public class BinaryController {
    @PostMapping("/upload-file")
    public String handleBinary(@RequestParam("file") MultipartFile file) {
        return "收到二進(jìn)制文件:" + file.getOriginalFilename() 
               + ",類型:" + file.getContentType();
    }
}

五、總結(jié)

請(qǐng)求體格式適用場(chǎng)景核心特點(diǎn)Spring Boot 接收方式
Form Data文本+文件混合傳輸支持二進(jìn)制,分隔符分隔@RequestParam(文本)+ MultipartFile(文件)
x-www-form-urlencoded純文本表單提交URL編碼,僅支持文本@RequestParam
Raw結(jié)構(gòu)化數(shù)據(jù)(JSON/XML等)純文本,需指定格式@RequestBody(綁定對(duì)象或字符串)
Binary單個(gè)二進(jìn)制文件無鍵值對(duì),原始字節(jié)流MultipartFile

掌握這四種格式的差異,尤其是 Form Data 與 x-www-form-urlencoded 的區(qū)別,能幫助我們?cè)谇昂蠖寺?lián)調(diào)中快速選擇合適的傳輸方式,避免“傳文件失敗”“參數(shù)亂碼”等常見問題。

到此這篇關(guān)于Postman中四種請(qǐng)求體格式用法全解析及SpringBoot接收指南的文章就介紹到這了,更多相關(guān)Postman請(qǐng)求體格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IntelliJ IDEA 2020如何設(shè)置背景圖片的方法步驟

    IntelliJ IDEA 2020如何設(shè)置背景圖片的方法步驟

    這篇文章主要介紹了IntelliJ IDEA 2020如何設(shè)置背景圖片的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 12種最常用的網(wǎng)頁編程語言簡(jiǎn)介(值得收藏)

    12種最常用的網(wǎng)頁編程語言簡(jiǎn)介(值得收藏)

    隨著網(wǎng)站的越來越普及,與Web相關(guān)的開發(fā)技術(shù)持續(xù)熱門,從開始簡(jiǎn)單的html到復(fù)雜的web開發(fā)語言asp、asp.net、php、jsp等等,在此,我就借助SEO馬龍博客的平臺(tái)跟大家簡(jiǎn)單的介紹一下常見的12種網(wǎng)頁編程語言
    2017-01-01
  • ApacheJMeter壓力測(cè)試工具使用安裝教程

    ApacheJMeter壓力測(cè)試工具使用安裝教程

    本文主要介紹了Apache JMeter的安裝使用教程,Apache JMeter是開源軟件,100%純Java應(yīng)用程序,旨在加載測(cè)試功能行為和測(cè)量性能。它最初設(shè)計(jì)用于測(cè)試Web應(yīng)用程序,但后來擴(kuò)展到其他測(cè)試功能
    2021-09-09
  • Hybris在idea中debug配置方法詳解

    Hybris在idea中debug配置方法詳解

    這篇文章主要介紹了Hybris在idea中debug配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳解Git合并分支的流程步驟

    詳解Git合并分支的流程步驟

    這篇文章主要介紹了詳解Git合并分支的流程步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • flash 擋住層的解決方法

    flash 擋住層的解決方法

    使用層制作的下拉菜單下正好有FLASH動(dòng)畫,菜單被動(dòng)畫遮擋.
    2009-08-08
  • 使用git上傳到碼云分支的實(shí)現(xiàn)

    使用git上傳到碼云分支的實(shí)現(xiàn)

    這篇文章主要介紹了使用git上傳到碼云分支的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 推薦四款可視化工具(解決99%的可視化大屏需求)

    推薦四款可視化工具(解決99%的可視化大屏需求)

    這篇文章主要介紹了推薦四款可視化工具(解決99%的可視化大屏需求),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-04-04
  • 高階DeepSeek從入門到精通教程手冊(cè)

    高階DeepSeek從入門到精通教程手冊(cè)

    高階DeepSeek從入門到精通教程手冊(cè),文章詳細(xì)介紹了如何使用AI工具進(jìn)行高效學(xué)習(xí)和工作,包括創(chuàng)建AI伙伴、有效提問、文檔分析、寫代碼、學(xué)術(shù)論文輔助、自媒體運(yùn)營、智能學(xué)習(xí)規(guī)劃、構(gòu)建私人知識(shí)庫、自動(dòng)化工作流搭建、跨語言翻譯等多方面的應(yīng)用
    2025-02-02
  • Git提交歷史查看與日志篩選的全攻略

    Git提交歷史查看與日志篩選的全攻略

    本文介紹了Git日志(gitlog)的實(shí)用操作指南,主要內(nèi)容包括:基礎(chǔ)用法展示提交歷史、顯示補(bǔ)丁(-p)與修改統(tǒng)計(jì)(--stat)、多樣化輸出格式(--pretty)設(shè)置、圖形化分支(--graph)展示,以及多種過濾方式(時(shí)間、作者、關(guān)鍵詞、路徑等),需要的朋友可以參考下
    2026-03-03

最新評(píng)論

获嘉县| 新丰县| 遂平县| 厦门市| 隆安县| 东乡族自治县| 南阳市| 西华县| 信阳市| 博兴县| 林西县| 定西市| 永昌县| 大邑县| 蒙阴县| 盘山县| 合江县| 青田县| 华池县| 龙游县| 南部县| 庄河市| 城口县| 阿图什市| 吉木乃县| 云浮市| 卓尼县| 宝坻区| 梅河口市| 萨迦县| 虹口区| 三门县| 柘城县| 渝北区| 张家口市| 将乐县| 洛宁县| 阳山县| 南乐县| 乳山市| 石首市|