成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

構(gòu)造Form表單(設(shè)計(jì)接口)時(shí),Enctype屬性到底該如何選擇?

開(kāi)發(fā) 前端
最近在寫個(gè)小工具,功能是把本地的Swagger格式的接口文檔一鍵上傳到接口管理平臺(tái)Yapi和Metersphere上,在看兩個(gè)平臺(tái)的導(dǎo)入接口文檔Openapi后發(fā)現(xiàn)都不是很規(guī)范。

問(wèn)題由來(lái)

定義上傳文件接口時(shí),都會(huì)選擇使用 multipart/form-data 方式,即要求表單的enctype屬性為multipart/form-data,文件以file類型提交,參數(shù)以key-value方式提交。最近在寫個(gè)小工具,功能是把本地的swagger格式的接口文檔一鍵上傳到接口管理平臺(tái)yapi和metersphere上,在看兩個(gè)平臺(tái)的導(dǎo)入接口文檔openapi后發(fā)現(xiàn)都不是很規(guī)范。

先看下ypai導(dǎo)入接口文檔接口的設(shè)計(jì),yapi要求使用application/x-www-form-urlencoded 方式導(dǎo)入文件(將文件內(nèi)容作為一個(gè)key的value,本質(zhì)上不是上傳文件,文件比較大的時(shí)候這種方式性能很低)

再看下metersphere導(dǎo)入接口文檔接口的設(shè)計(jì),因?yàn)楣俜轿臋n寫的不夠詳細(xì),文檔中沒(méi)有體現(xiàn)傳參方式,所以通過(guò)抓包看。抓包后參數(shù)部分如下:

------WebKitFormBoundary2iHGla7AYYuM2hRW
Content-Disposition: form-data; name="file"; filename="swagger.json"
Content-Type: application/json
------WebKitFormBoundary2iHGla7AYYuM2hRW
Content-Disposition: form-data; name="request"; filename="blob"
Content-Type: application/json

{"file":{"uid":1678539466009},"modeId":"incrementalMerge","moduleId":"64a43afa-a846-431b-9b5a-72c0d40081ab","coverModule":false,"modulePath":"/未規(guī)劃接口","platform":"Swagger2","saved":true,"model":"definition","projectId":"6783a271-f88f-569d-b6a5-43ef180bd17a","protocol":"HTTP"}
------WebKitFormBoundary2iHGla7AYYuM2hRW--

可以看出是使用了multipart/form-data方式,需要導(dǎo)入的文件也是以file類型提交的,但是參數(shù)部分竟然也要求使用file類型提交。

enctype屬性

enctype規(guī)定了form表單發(fā)送到服務(wù)器的編碼方式,有如下的三個(gè)值:

  • application/x-www-form-urlencoded:在發(fā)送前編碼所有字符,把表單數(shù)據(jù)轉(zhuǎn)換成一個(gè)字串(key1=value1&key2=value2…),當(dāng)請(qǐng)求方式為get時(shí)拼接到url后面并使用用?分割(例如http://test.com/xxx/detail?key1=value1&key2=value2);當(dāng)請(qǐng)求方式為post時(shí)放到到body中。
  • multipart/form-data:不對(duì)字符編碼,如果表單中既有文本數(shù)據(jù),又有文件等二進(jìn)制數(shù)據(jù),必須使用此值。瀏覽器(自己構(gòu)造表單也需要這么做)會(huì)把整個(gè)表單以控件為單位分割,并為每個(gè)部分加上Content-Disposition、分割符(boundary),另外文件類型的會(huì)加上Content-Type(默認(rèn)為application/octet-stream)。
  • text/plain:將空格轉(zhuǎn)換為"+"號(hào),但不對(duì)特殊字符編碼,不建議使用。

小結(jié)

如果接口沒(méi)有上傳文件的需求,使用application/x-www-form-urlencoded 即可。

如果接口有上傳文件的需求,使用 multipart/form-data,文件以file類型提交,參數(shù)以key-value方式提交。

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2020-07-14 14:40:05

激光噴墨打印

2020-06-02 14:40:42

5G邊緣計(jì)算物聯(lián)網(wǎng)

2021-01-15 19:10:32

日志打印原則

2022-05-16 10:59:46

GPIOLinux內(nèi)核

2011-07-18 09:48:10

jQuery

2021-11-04 18:15:55

下載上傳瀏覽器

2022-04-05 22:18:40

面板低代碼平臺(tái)

2011-12-11 11:51:28

2021-08-04 07:47:17

表單組件代碼

2017-11-14 06:10:15

機(jī)器學(xué)習(xí)編程語(yǔ)言數(shù)據(jù)科學(xué)

2024-09-19 08:46:46

SPIAPI接口

2009-07-29 16:40:50

Ajax提交asp.n

2021-07-08 21:51:03

5G技術(shù)Wi-Fi 6

2022-06-14 21:14:18

5.5GAI數(shù)字化

2013-09-04 15:17:38

2011-12-28 15:24:21

2020-01-03 09:57:33

Microsoft SSQL數(shù)據(jù)庫(kù)

2015-07-09 10:22:27

CloudStackOpenStack云計(jì)算

2024-01-25 18:00:56

微服務(wù)系統(tǒng)KafkaRabbitMQ

2019-08-20 09:16:39

6G網(wǎng)絡(luò)1G
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲成人网在线 | 视频一区二区三区在线观看 | 国产精品美女www爽爽爽视频 | wwwxxx日本在线观看 | 天天综合久久 | 欧美一区二区三区在线 | 黄色网络在线观看 | 国产视频精品在线观看 | 91精品入口蜜桃 | 一区二区三区网站 | 国产露脸国语对白在线 | 我想看一级黄色毛片 | 蜜桃视频在线观看www社区 | 91视频播放 | 国产精品亚洲综合 | 国产综合视频 | 中文字幕欧美一区二区 | 亚洲毛片一区二区 | 精品美女久久久 | 国产美女在线精品免费 | 在线免费观看日本视频 | 99精品久久| 人人干人人爽 | 男女啪啪网址 | 久久久福利 | 国产精品入口 | 国产丝袜一区二区三区免费视频 | 日日日操| 天天影视色综合 | 五月天激情综合网 | av在线播放一区二区 | 久久av一区 | 91夜夜夜| 久久久久久免费毛片精品 | 国产三级一区二区三区 | av网址在线 | 7777奇米影视 | 国产ts人妖另类 | 久久与欧美 | 日韩图区 | 天天夜干 |