新聞中心
最近一直都比較忙,堅(jiān)持月月更新博客的計(jì)劃不得中止了,今天抽出點(diǎn)時(shí)間來說說最近項(xiàng)目中遇到的一個(gè)問題,有關(guān)request post請求格式中的multipart/form-data格式。
引言
最近在參與一個(gè)項(xiàng)目過程中遇到一個(gè)問題,相信大部分人都遇到過:
在后端與前端約定好application/json格式傳遞數(shù)據(jù)時(shí),因?yàn)楹笈_是go強(qiáng)類型語言,在定義api接口時(shí),某些字段要求是整型類型,但是對于前端來說輸入框或者從url中的search取到的參數(shù)都是字符串,不得不進(jìn)行前端類型轉(zhuǎn)換。
咋一看,對于接口參數(shù)比較少的api前端轉(zhuǎn)換沒有什么,但是對于一般的交互復(fù)雜,參數(shù)比較多的接口,要對大部分參數(shù)進(jìn)行類型轉(zhuǎn)換就是一種吃力不討好的活。好在后端同學(xué)還支持另一種的前后端數(shù)據(jù)交互格式,即multipart/form-data。通過該格式后端取到前端傳遞的數(shù)據(jù)就是數(shù)字了(即使前端傳遞的是字符串),而不像json格式獲取的是字符串。這樣,就不需要額外對前端獲取的數(shù)據(jù)進(jìn)行特殊轉(zhuǎn)換了。下面就來說說form-data。
form-data請求格式
multipart/form-data是基于post方法來傳遞數(shù)據(jù)的,并且其請求內(nèi)容格式為Content-Type: multipart/form-data,用來指定請求內(nèi)容的數(shù)據(jù)編碼格式。另外,該格式會生成一個(gè)boundary字符串來分割請求頭與請求體的,具體的是以一個(gè)boundary=${boundary}來進(jìn)行分割,偽碼如下:
... Content-Type: multipart/form-data; boundary=${boundary} --${boundary} ... ... --${boundary}--
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
本文名稱:基于form-data請求格式詳解-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://www.ef60e0e.cn/article/ddgeci.html