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

Postman form-data、x-www-form-urlencoded的區(qū)別及說明

 更新時(shí)間:2025年03月24日 09:05:38   作者:碼靈  
這篇文章主要介紹了Postman form-data、x-www-form-urlencoded的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Postman form-data、x-www-form-urlencoded的區(qū)別

我們?cè)谄綍r(shí)的postman請(qǐng)求調(diào)試,以及web的http請(qǐng)求開發(fā)時(shí),常常能看到以下幾種傳參的形式 form-data、x-www-form-urlencoded、raw、binary,那么這些請(qǐng)求方式的區(qū)別是什么呢?

1、form-data

就是http請(qǐng)求中的multipart/form-data,它會(huì)將表單的數(shù)據(jù)處理為一條消息,以標(biāo)簽為單元,用分隔符分開。既可以上傳鍵值對(duì),也可以上傳文件。

當(dāng)上傳的字段是文件時(shí),會(huì)有Content-Type來說明文件類型;content-disposition,用來說明字段的一些信息;由于有boundary隔離,所以multipart/form-data既可以上傳文件,也可以上傳鍵值對(duì),它采用了鍵值對(duì)的方式,所以可以上傳多個(gè)文件。

上圖中我們可以看到在postman中form-data選項(xiàng),key是有下拉選擇項(xiàng)的,這也說明了form-data類型支持key-value和文件傳輸。

上圖中我們可以看到,明顯的不同的key參數(shù)之間是有boundary分割的。每個(gè)參數(shù)都有Content-Disposition: form-data; name="xxx"信息

2、x-www-form-urlencoded

就是application/x-www-from-urlencoded,會(huì)將表單內(nèi)的數(shù)據(jù)轉(zhuǎn)換為鍵值對(duì),比如,name=java&age = 23

我們可以看到,這個(gè)形式的傳參方式,postman的key是并沒有像form-data一樣改出File的下拉選項(xiàng)的,這也說明了這種方式只支持string的key-value值傳遞。

在上圖中我們也能明顯的看到在http的body體中傳輸?shù)母袷健M瑫r(shí)我們也看到對(duì)于存在中文和空格的情況,它是會(huì)進(jìn)行轉(zhuǎn)換的。

  • 1、它是post的默認(rèn)格式,使用js中URLencode轉(zhuǎn)碼方法。包括將name、value中的空格替換為加號(hào);將非ascii字符做百分號(hào)編碼;將input的name、value用‘=’連接,不同的input之間用‘&’連接。
  • 2、百分號(hào)編碼什么意思呢。比如漢字‘丁’吧,他的utf8編碼在十六進(jìn)制下是0xE4B881,占3個(gè)字節(jié),把它轉(zhuǎn)成字符串‘E4B881’,變成了六個(gè)字節(jié),每?jī)蓚€(gè)字節(jié)前加上百分號(hào)前綴,得到字符串“%E4%B8%81”,變成九個(gè)ascii字符,占九個(gè)字節(jié)(十六進(jìn)制下是0x244534254238253831)。把這九個(gè)字節(jié)拼接到數(shù)據(jù)包里,這樣就可以傳輸“非ascii字符的 utf8編碼的 十六進(jìn)制表示的 字符串的 百分號(hào)形式。
  • 3、同樣使用URLencode轉(zhuǎn)碼,這種post格式跟get的區(qū)別在于,get把轉(zhuǎn)換、拼接完的字符串用‘?’直接與表單的action連接作為URL使用,所以請(qǐng)求體里沒有數(shù)據(jù);而post把轉(zhuǎn)換、拼接后的字符串放在了請(qǐng)求體里,不會(huì)在瀏覽器的地址欄顯示,因而更安全一些。
  • 4、對(duì)于一段utf8編碼的字節(jié),用application/x-www-form-urlencoded傳輸其中的ascii字符沒有問題,但對(duì)于非ascii字符傳輸效率就很低了(漢字‘丁’從三字節(jié)變成了九字節(jié)),因此在傳很長(zhǎng)的字節(jié)(如文件)時(shí)應(yīng)用multipart/form-data格式。smtp等協(xié)議也使用或借鑒了此格式。
  • 5、multipart/form-data將表單中的每個(gè)input轉(zhuǎn)為了一個(gè)由boundary分割的小格式,沒有轉(zhuǎn)碼,直接將utf8字節(jié)拼接到請(qǐng)求體中,在本地有多少字節(jié)實(shí)際就發(fā)送多少字節(jié),極大提高了效率,適合傳輸長(zhǎng)字節(jié)。

3、raw

可以上傳任意格式的文本,可以上傳text、json、xml、html等

http的傳輸格式:

4、binary

相當(dāng)于Content-Type:application/octet-stream,從字面意思得知,只可以上傳二進(jìn)制數(shù)據(jù),通常用來上傳文件,由于沒有鍵值,所以,一次只能上傳一個(gè)文件。

postman中也可以看出,下面只有一個(gè)select file的功能。也說明只能傳文件。

輔助

postman有個(gè)很好用的功能預(yù)覽代碼,點(diǎn)擊右側(cè)code,選擇格式

有多種格式,尤其是對(duì)于各種語(yǔ)言的功能,比如像Go語(yǔ)言,直接生成代碼。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用React和springboot做前后端分離項(xiàng)目的步驟方式

    使用React和springboot做前后端分離項(xiàng)目的步驟方式

    這篇文章主要介紹了使用React和springboot做前后端分離項(xiàng)目的步驟方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 解決Idea的選擇文件后定位瞄準(zhǔn)器"Select Opened File"的功能不見了

    解決Idea的選擇文件后定位瞄準(zhǔn)器"Select Opened File"的功能

    使用IntelliJ IDEA時(shí),可能會(huì)發(fā)現(xiàn)"SelectOpenedFile"功能不見了,這個(gè)功能允許用戶快速定位到當(dāng)前打開文件的位置,若要找回此功能,只需在IDEA的標(biāo)題欄上右鍵,然后選擇"Always Select Opened File",這樣就可以重新啟用這個(gè)便捷的功能
    2024-11-11
  • Java中的Native關(guān)鍵字講解

    Java中的Native關(guān)鍵字講解

    本文介紹了Java中的Native關(guān)鍵字,native關(guān)鍵字是架起本機(jī)語(yǔ)言和JAVA之間鴻溝的橋梁。如果我們的軟件與硬件的交互在使用預(yù)先存在的代碼時(shí)更有效,那么這可以作為一個(gè)關(guān)鍵環(huán)節(jié)。與從頭開始設(shè)計(jì)新的應(yīng)用程序代碼相比,只要可以避免,它就可以使實(shí)現(xiàn)工作更少,下面來了解集體內(nèi)容
    2021-12-12
  • Java logback日志的簡(jiǎn)單使用

    Java logback日志的簡(jiǎn)單使用

    這篇文章主要介紹了Java logback日志的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • SpringBoot AOP注解失效問題排查與解決(調(diào)用內(nèi)部方法)

    SpringBoot AOP注解失效問題排查與解決(調(diào)用內(nèi)部方法)

    這篇文章主要介紹了SpringBoot AOP注解失效問題排查與解決(調(diào)用內(nèi)部方法),文中通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • Java中ArrayList初始化的四種方法詳解

    Java中ArrayList初始化的四種方法詳解

    這篇文章主要介紹了Java中ArrayList初始化的四種方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Tk.mybatis零sql語(yǔ)句實(shí)現(xiàn)動(dòng)態(tài)sql查詢的方法(4種)

    Tk.mybatis零sql語(yǔ)句實(shí)現(xiàn)動(dòng)態(tài)sql查詢的方法(4種)

    有時(shí)候,查詢數(shù)據(jù)需要根據(jù)條件使用動(dòng)態(tài)查詢,這時(shí)候需要使用動(dòng)態(tài)sql,本文主要介紹了Tk.mybatis零sql語(yǔ)句實(shí)現(xiàn)動(dòng)態(tài)sql查詢的方法,感興趣的可以了解一下
    2021-12-12
  • Java Robot應(yīng)用示例之機(jī)器人功能

    Java Robot應(yīng)用示例之機(jī)器人功能

    這篇文章主要為大家詳細(xì)介紹了Java Robot應(yīng)用示例之機(jī)器人功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Springboot實(shí)現(xiàn)根據(jù)用戶ID切換動(dòng)態(tài)數(shù)據(jù)源

    Springboot實(shí)現(xiàn)根據(jù)用戶ID切換動(dòng)態(tài)數(shù)據(jù)源

    在很多具體應(yīng)用場(chǎng)景中,我們需要用到動(dòng)態(tài)數(shù)據(jù)源的情況,比如多租戶的場(chǎng)景,系統(tǒng)登錄時(shí)需要根據(jù)用戶信息切換到用戶對(duì)應(yīng)的數(shù)據(jù)庫(kù)。這篇文章主要介紹了SpringBoot根據(jù)用戶ID實(shí)現(xiàn)切換動(dòng)態(tài)數(shù)據(jù)源的示例代碼,感興趣的可以了解一下
    2021-12-12
  • Springboot對(duì)接mqtt的項(xiàng)目實(shí)踐

    Springboot對(duì)接mqtt的項(xiàng)目實(shí)踐

    在SpringBoot中對(duì)接MQTT協(xié)議,可以使用Eclipse Paho客戶端和Spring Integration MQTT模塊,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02

最新評(píng)論

涟水县| 出国| 石首市| 嫩江县| 桑植县| 尼勒克县| 喀什市| 滦南县| 朝阳县| 陆川县| 水城县| 麦盖提县| 股票| 永定县| 象州县| 汉中市| 达孜县| 雷山县| 斗六市| 时尚| 尉犁县| 阿克陶县| 大理市| 临桂县| 嘉善县| 林州市| 清流县| 绍兴市| 大同县| 曲麻莱县| 永清县| 依安县| 克拉玛依市| 汉源县| 大丰市| 永胜县| 齐齐哈尔市| 融水| 衡南县| 图们市| 三都|