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

構造Form表單(設計接口)時,Enctype屬性到底該如何選擇?

開發 前端
最近在寫個小工具,功能是把本地的Swagger格式的接口文檔一鍵上傳到接口管理平臺Yapi和Metersphere上,在看兩個平臺的導入接口文檔Openapi后發現都不是很規范。

問題由來

定義上傳文件接口時,都會選擇使用 multipart/form-data 方式,即要求表單的enctype屬性為multipart/form-data,文件以file類型提交,參數以key-value方式提交。最近在寫個小工具,功能是把本地的swagger格式的接口文檔一鍵上傳到接口管理平臺yapi和metersphere上,在看兩個平臺的導入接口文檔openapi后發現都不是很規范。

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

再看下metersphere導入接口文檔接口的設計,因為官方文檔寫的不夠詳細,文檔中沒有體現傳參方式,所以通過抓包看。抓包后參數部分如下:

------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":"/未規劃接口","platform":"Swagger2","saved":true,"model":"definition","projectId":"6783a271-f88f-569d-b6a5-43ef180bd17a","protocol":"HTTP"}
------WebKitFormBoundary2iHGla7AYYuM2hRW--

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

enctype屬性

enctype規定了form表單發送到服務器的編碼方式,有如下的三個值:

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

小結

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

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

責任編輯:姜華 來源: 今日頭條
相關推薦

2020-07-14 14:40:05

激光噴墨打印

2020-06-02 14:40:42

5G邊緣計算物聯網

2021-01-15 19:10:32

日志打印原則

2022-05-16 10:59:46

GPIOLinux內核

2011-07-18 09:48:10

jQuery

2021-11-04 18:15:55

下載上傳瀏覽器

2022-04-05 22:18:40

面板低代碼平臺

2021-08-04 07:47:17

表單組件代碼

2011-12-11 11:51:28

2017-11-14 06:10:15

機器學習編程語言數據科學

2009-07-29 16:40:50

Ajax提交asp.n

2024-09-19 08:46:46

SPIAPI接口

2021-07-08 21:51:03

5G技術Wi-Fi 6

2022-06-14 21:14:18

5.5GAI數字化

2013-09-04 15:17:38

2011-12-28 15:24:21

2020-01-03 09:57:33

Microsoft SSQL數據庫

2015-07-09 10:22:27

CloudStackOpenStack云計算

2024-01-25 18:00:56

微服務系統KafkaRabbitMQ

2019-08-20 09:16:39

6G網絡1G
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品激情在线 | 久草热在线 | 毛片免费视频 | 久久久www成人免费无遮挡大片 | 狠狠干综合视频 | 午夜激情网 | 免费在线观看成人 | 国产亚洲精品综合一区 | 国产一区二区在线91 | 亚洲高清在线 | 午夜黄色| 国产精品精品久久久 | 日韩av高清 | 中文在线一区二区 | 91玖玖| 国产成人在线视频播放 | 亚洲一区在线免费观看 | 在线观看日韩精品视频 | 午夜视频一区二区三区 | 亚洲精品视频一区 | 亚洲精品久久久久avwww潮水 | 亚洲精品99| 国产农村一级国产农村 | 日韩福利视频 | 国产精品成人一区 | 羞羞网站在线免费观看 | 在线一区二区三区 | 久久久久久国产精品 | 九色在线观看 | 午夜久久久 | 国产精品免费大片 | www.99热 | 久久久久久91香蕉国产 | 国产精品亚洲精品 | 精品久久久久久久久久久久 | 国产午夜精品一区二区三区嫩草 | 九九热精 | 暖暖成人免费视频 | 久久成人av电影 | 精品一区二区三区在线观看国产 | 搞黄视频免费看 |