http header裡的content-type一般有這三種:
multipart/form-data: 資料被編碼為一條訊息,頁上的每個控制項對應訊息中的乙個部分。
text/plain: 資料以純文字形式(text/json/xml/html)進行編碼,其中不含任何控制項或格式字元。postman軟體裡標的是raw。
(1)、http 協議是以ascii 碼傳輸,建立在 tcp/ip 協議之上的應用層規範。規範把 http 請求分為三個部分:狀態行、請求頭、訊息主體。
(2)、協議規定 post 提交的資料必須放在訊息主體(entity-body)中,但協議並沒有規定資料必須使用什麼編碼方式。實際上,開發者完全可以自己決定訊息主體的格式,只要最後傳送的 http 請求滿足上面的格式就可以。
(3)、資料傳送出去,還要服務端解析成功才有意義。一般服務端語言如 php、python 等,以及它們的 framework,都內建了自動解析常見資料格式的功能。服務端通常是根據請求頭(headers)中的content-type 欄位來獲知請求中的訊息主體是用何種方式編碼,再對主體進行解析。
此時可以看到,
title=test&sub%5b%5d=1&sub%5b%5d=2&sub%5b%5d=3
這又是乙個常見的 post 資料提交的方式。我們使用表單上傳檔案時,必須讓表單的enctype 等於 multipart/form-data。直接來看乙個請求示例:
content-type:boundary屬性 用於分割不同的字段,為了避免與正文內容重複,boundary 很長很複雜。然後 content-type 裡指明了資料是以 multipart/form-data 來編碼,本次請求的 boundary 是什麼內容。訊息主體裡按照字段個數又分為多個結構類似的部分,每部分都是以--boundary
開始,緊接著是內容描述資訊,然後是回車,最後是字段具體內容(文字或二進位制)。如果傳輸的是檔案,還要包含檔名和檔案型別資訊。訊息主體最後以--boundary--
標示結束。 關於 multipart/form-data 的詳細定義,請前往 rfc1867 檢視。
這種方式一般用來上傳檔案,各大服務端語言對它也有著良好的支援。
//請求資料
var data = ;
//請求資料序列化處理
json.stingify(data);
//結果:;
http post提交陣列
方式一 requestparam方式 服務提供方用 requestparam註解接收引數,引數型別為long陣列 apioperation value tags notes response public object convert requestparam value id required t...
Http POST請求資料提交格式
做開發時,會用到post提交資料,原來是用httpmime包來處理資料封裝,但為了乙個小需求,引入乙個幾十kb的jar,總感覺不值,學習一下post請求的格式,自己順便練下手,實現乙個 服務端通常是根據請求頭 headers 中的 content type 欄位來獲知請求中的訊息主體是用何種方式編碼...
HTTP POST和GET的提交方式
向伺服器提交資料有兩種方式,post和get。兩者的區別主要有三點,安全性 長度限制 資料結構。其中get請求安全性相比較而言較差,資料長度受瀏覽器位址列限制,沒有方法體。兩種都是較為重要的 資料提交方式。現簡單介紹一下三種post和get的提交方式。無論是哪種方法實現post和get,get 的訪...