1. 程式人生 > >4種常見的POST資料提交方式

4種常見的POST資料提交方式

HTTP/1.1 協議規定的 HTTP 請求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 這幾種。其中 POST 一般用來向服務端提交資料,本文主要討論 POST 提交資料的幾種方式。

我們知道,HTTP 協議是以 ASCII 碼傳輸,建立在 TCP/IP 協議之上的應用層規範。規範把 HTTP 請求分為三個部分:狀態行、請求頭、訊息主體。類似於下面這樣:


1.第一種 application/x-www-form-urlencode

這應該是最常見的 POST 提交資料的方式了。瀏覽器的原生 <form> 表單,如果不設定 enctype

 屬性,那麼最終就會以 application/x-www-form-urlencoded 方式提交資料。請求類似於下面這樣:

BASHPOST http://www.example.com HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=utf-8

title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3

首先,Content-Type 被指定為 application/x-www-form-urlencoded;其次,提交的資料按照 key1=val1&key2=val2 的方式進行編碼,key 和 val 都進行了 URL 轉碼。


2.第二種multipart/formdata

這又是一個常見的 POST 資料提交的方式。我們使用表單上傳檔案時,必須讓 <form> 表單的 enctype 等於 multipart/form-data。

這種資料提交方式主要用來上傳檔案的。

3.第三種application/json

讓前端在content-type 設定為application/json,然後提交引數用JSON.stringify將JS物件序列化。

後端在spring中可以用@RequestBody 註解,這樣直接可以將引數反序列化到物件中。這種方式在RestFul介面用的多,用Json提交的有個好處是可以處理非常複雜的資料機構。如果按照第一種鍵值對的方式提交,工作量較大。

坑:單個變數String的時候,不能直接接受(預設是轉成map的)。報錯:

org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Can not deserialize instance of java.lang.String out of START_OBJECT token
 at [Source: [email protected]; line: 1, column: 1]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
 at [Source: [email protected]; line: 1, column: 1]
解決:

需要用非基礎型別物件接收。

4.第四種text/xml

用的不多。

相關推薦

4常見POST資料提交方式

HTTP/1.1 協議規定的 HTTP 請求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 這幾種。其中 POST 一般用來向服務端提交資料,本文主要討論 POST 提交資料的幾種方式。 我們知道,HTTP 協議是

常見POST-------- content-type資料提交方式

       HTTP/1.1 協議規定的 HTTP 請求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 這幾種。其中 POST 一般用來向服務端提交資料,本文主要討論 POST 提交資料的幾種方式。      

POST提交資料時四常見資料格式

最近專案部署到新環境tomcat+mysql,想看看專案部署成功沒有,就用soupui調對應介面開測試,soupui使用比較簡單,給上介面地址,入參xml報文,把入參的media Type設定為application/xml 點選呼叫就可以了。但是點選呼叫返回值為空。對,就是啥都沒返回。XM

JavaScript第二課-表單及兩資料提交方式

1、表單標籤 <legend>註冊區域</legend> <form action="http://www.baidu.com"> 使用者名稱: <input type="text"/ name="user" ><br/

基本資料型別轉為String型別的4常見方法

1.toString先把基本資料型別裝箱,再用物件的toString()方法2.String類的valueOf方法 這是一個靜態方法,幾乎可以把各種型別轉換為字串String.valueOf();注意區別包裝類的valueOf方法,那個也是靜態方法,返回的是包裝型別。3.加一

6常見項目溝通方式的比較

6種常見項目溝通方式分別是文檔溝通、郵件溝通、及時通訊溝通、電話溝通、面對面溝通和會議溝通。通過了解這6種常見項目溝通方式的優缺點,能夠更便於項目管理者更加靈活應用這些溝通方式,在合適場合用合適溝通方式來進行溝通,溝通效果更棒。 項目中常見的溝通方式: 1 文檔溝通:

常見SQL分頁方式效率比較

har n) over mage 適用於 not blog toolbar 大數 1.創建測試環境,(插入100萬條數據大概耗時5分鐘)。 create database DBTestuse DBTest--創建測試表create table pagetest(id

JavaScript的幾常見的創建方式

自定義 圖片 () 屬性 創建方式 return語句 bubuko 之前 object 1.通過Object構造函數或者對象字面量創建單個對象 使用字面量方法創建對象:var stut = {name: "張三"}; 使用內置構造函數創建對象:var stu = new O

JS中4常見的內存泄漏

global long int message fun this指向 由於 回調 pan 一、什麽是內存泄漏 本質上講,內存泄漏是當一塊內存不再被應用程序使用的時候,由於某種原因,這塊內存沒有返還給操作系統或空閑內存池的現象。 二、幾種常見的內存泄漏 1、意外的全局變量 一

不可不知!4常見的黑客攻擊手段

安全知識 不同 但是 執行 檢索 使用 cdn 惡作劇 事情   在計算機安全方面,黑客是專註於計算機和網絡系統安全機制的人。今天給大家揭秘4種常見的計算機攻擊手段,讓大家更好了解計算機安全知識。 特洛伊木馬   一個特洛伊木馬是,這似乎是做一件事情,但實際上做一套程序。它

十一 三Struts2的資料封裝方式

Struts2的資料封裝:Struts2是一個web層框架,框架是軟體的半成品。提供了資料封裝的基本功能。 屬性驅動:提供屬性set方法的方式 這種方式很少用,除非資料少,需要在Action類裡自己往物件裡封裝 前端jsp: 1 <%@ page language="java" cont

4常見IO模式詳解

IO模式 本文討論的背景是Linux環境下的網路IO。 對於一次IO訪問,資料會先被拷貝到作業系統核心的緩衝區中,然後再從作業系統核心的緩衝區拷貝到應用程式的地址空間。 所以,當發生一個IO操作時,它會經歷兩個階段:1. 等待資料準備2. 將資料從核心拷貝到程序中 對於兩個階段,li

web前端之4常用的Ajax請求方式

在jQuery中,Ajax常見的請求方式主要有一下4種: 1、$.ajax()返回其建立的 XMLHttpRequest 物件。 $.ajax() 只有一個引數:引數 key/value 物件,包含各配置及回撥函式資訊。 如果你指定了dataType選項,那麼需要保證伺服器返回正

常見SQL分頁方式

第一種方法:效率最高 [sql]  view plain  copy SELECT TOP 頁大小 *   

POST不同提交方式對應的Content-Type,及java伺服器接收引數方式

簡介:Content-Type(MediaType),即是Internet Media Type,網際網路媒體型別;也叫做MIME型別,在Http協議訊息頭中,使用Content-Type來表示具體請求中的媒體型別資訊.參考 response.Header裡常見Content-Type一般有以下四種: a

POST不同提交方式對應的Content-Type,及java服務器接收參數方式

媒體 required this 一個 form 協議 vat pos etag 簡介:Content-Type(MediaType),即是Internet Media Type,互聯網媒體類型;也叫做MIME類型,在Http協議消息頭中,使用Content-Type來表示

JavaScript中4常見的記憶體洩漏及避免方法

垃圾回收演算法        常用垃圾回收演算法叫做**標記清除 (Mark-and-sweep) **,演算法由以下幾步組成: 1、垃圾回收器建立了一個“roots”列表。roots 通常是程式碼中全域性變數的引用。JavaScrip

執行緒池的幾常見的建立的方式

一:建立大小不固定的執行緒池 二:建立固定數量執行緒的執行緒池 三:建立單執行緒的執行緒池 四:建立定時執行緒 1.建立大小不固定的執行緒池 package com.peace.pms.Test; import java.util.concurrent.Execu

css 4常見實現元素居中的辦法

pan enter abs spa 調整 居中 col style bsp css 4種常見實現元素居中的辦法: 1、通過 margin 屬性調整 :{ position: absolute; top: 50%; left: 50%; margin-left:

data_structure_and_algorithm -- 4常見二分查詢變形問題

二分查詢變形問題: (1)查詢第一個值等於給定值的元素 (2)查詢最後一個值等於給定值的元素 (3)查詢第一個大於等於給定值的元素 (4)查詢最後一個小於等於給定值的元素 //(1)查詢第