1. 程式人生 > >http請求引數之Query String Parameters、Form Data、Request Payload

http請求引數之Query String Parameters、Form Data、Request Payload

在與server端進行資料傳遞時,通常會用到GET、POST方法進行引數提交,而引數提交的方式,通常取決於server端對資料的接收方式。
本文對幾種常見的引數提交方式進行歸納及簡述,這不是一篇科普文,不嚴謹處見諒,僅供參考。

Query String Parameters

當發起一次GET請求時,引數會以url string的形式進行傳遞。即?後的字串則為其請求引數,並以&作為分隔符。

如下http請求報文頭:

// General
Request URL: http://foo.com?x=1&y=2
Request Method: GET

// Query String Parameters


x=1&y=2

Form Data

當發起一次POST請求時,若未指定content-type,則預設content-type為application/x-www-form-urlencoded。即引數會以Form Data的形式進行傳遞,不會顯式出現在請求url中。

如下http請求報頭:

// General
Request URL: http://foo.com
Request Method: POST

// Request Headers
content-type: application/x-www-form-urlencoded; charset=UTF-8

// Form Data
x=1

&y=2

Request Payload

當發起一次POST請求時,若content-type為application/json,則引數會以Request Payload的形式進行傳遞(顯然的,資料格式為JSON),不會顯式出現在請求url中。

如下http請求報頭:

// General
Request URL: http://foo.com
Request Method: POST

// Request Headers
content-type: application/json; charset=UTF-8

// Request Payload
x=1&y=2

如果希望通過Form Data的方式來傳遞資料,則可以通過原生方法

formData()來進行資料組裝,且content-type需要設定為multipart/form-data。

如下http請求報頭:

// General
Request URL: http://foo.com
Request Method: POST

// Request Headers
content-type: multipart/form-data; charset=UTF-8

// Request Payload
------WebKitFormBoundaryAIpmgzV8Ohi99ImM
Content-Disposition: form-data; name=“x”

1
------WebKitFormBoundaryAIpmgzV8Ohi99ImM
Content-Disposition: form-data; name=“y”

2
------WebKitFormBoundaryAIpmgzV8Ohi99ImM–

其中,WebKitFormBoundaryAIpmgzV8Ohi99ImM為瀏覽器隨機生成的boundary,作為分隔引數,作用等同於&

application/x-www-form-urlencoded 和 multipart/form-data

The content type "application/x-www-form-urlencoded" is inefficient for sending large quantities of binary data or text containing non-ASCII characters. The content type "multipart/form-data" should be used for submitting forms that contain files, non-ASCII data, and binary data.

multipart/form-data的優勢還伴隨一些相容性問題,詳細請參考文章結束的參考文獻。

參考文獻

      </div>
    </div>

相關推薦

http 請求引數Query String ParametersForm DataRequest Payload

Query String Parameters 當發起一次GET請求時,引數會以url string的形式進行傳遞。即?後的字串則為其請求引數,並以&作為分隔符。 如下http請求報文頭: // General Request URL: http://foo.com?x=1&

http請求引數Query String ParametersForm DataRequest Payload

在與server端進行資料傳遞時,通常會用到GET、POST方法進行引數提交,而引數提交的方式,通常取決於server端對資料的接收方式。 本文對幾種常見的引數提交方式進行歸納及簡述,這不是一篇科普文,不嚴謹處見

HTTP請求中的form datarequest payload的區別(request 後臺無法獲取參數)

origin logger res 部分 padding ble 處理 代碼 恰恰 轉載自:btg.yoyo jQuery的ajax方法和post方法分別發送請求,在後臺Servlet進行處理時結果是不一樣的,比如用$.ajax方法發送請求時(data參數是一個JSON.

ParametersForm DataRequest Payload

在與server端進行資料傳遞時,通常會用到GET、POST方法進行引數提交,而引數提交的方式,通常取決於server端對資料的接收方式。 Query String Parameters 當發起一次GET請求時,引數會以url string的形式進行傳遞。即?後的字串則為其請求引數,並以

node爬蟲HTTP請求中的form datarequest payload的區別

程式碼片段: let request = require('request'); let cheerio = require('cheerio'); let async=require('async'); let querystring=require

HTTP請求中的form datarequest payload的區別

 jQuery的ajax方法和post方法分別傳送請求,在後臺Servlet進行處理時結果是不一樣的,比如用$.ajax方法傳送請求時(data引數是一個JSON.stringify()處理後的字串,而不是一個JSON物件),servlet裡可以這樣使用Gson來解析: new Jsonparser().p

jQuery.ajax設定請求頭實現post請求傳送資料的格式(Form DataRequest Payload

 Request Payload 請求頭部的 Content-Type: application/json,請求正文是一個 json 格式的字串 Form Data 請求頭部的 Content-Typ

axios中post中引數問題 --- form DataRequest payload

丟擲問題: 在vue專案中使用axios發post請求時候,後臺返回500。 發現是form Data 和 Request payload的問題。 後臺對兩者的處理方式不同,導致我們接收不到資料。 解決問題: 首先需要全域性配置 axios.defaults.

vue axios POST請求中引數以form datarequest payload形式的原因

HTTP請求中,如果是get請求,那麼表單引數以name=value&name1=value1的形式附到url的後面,如果是post請求,那麼表單引數是在請求體中,也是以name=value&name1=value1的形式在請求體中。通過chrome的開發

HTTP請求中的form data,request payload,query string parameters以及在node服務器中如何接收這些參數

orm function log tab 參數 title 方法 ext head http://www.cnblogs.com/hsp-blog/p/5919877.html 今天,在工作(倒騰微信小程序)的時候,發現發送post請求到node後臺服務器接收不

HTTP請求中的form data,request payload,query string parameters

Query String Parameters 當發起一次GET請求時,引數會以url string的形式進行傳遞。即?後的字串則為其請求引數,並以&作為分隔符。 Form Data 當發起一次POST請求時,若未指定content-type,則預設content

引數query String格式,方法post,傳送http請求

query String格式:     http://ip:port?name=zhangsan&pwd=123456publicclass APIHttpClient {      // 介面

python介面測試學習(3)http請求引數

post請求引數常見:1. application/json     {“key1“:”value1”,“key2":“value2"}2. application/x-www-form-urlencoded        key1=value1&key2=value

HTTP請求方法 HEAD

很多 就是 lock 有用 bank 如果 AD 請求方法 ont HTTP請求方法並不是只有GET和POST,只是最常用的。據RFC2616標準(現行的HTTP/1.1)得知,通常有以下8種方法:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRAC

HTTP請求方法header(原來不光只有post和get啊~~)

以前一直以為HTTP請求只有POST和GET方法(知識最常用的),後來看一篇簡書,裡面提到還有HEAD方法,再查查資料發現不止這3個。。。 據RFC2616標準(現行的HTTP/1.1)得知,通常有以下8種方法:OPTIONS、GET、HEAD、POST、PUT、DELET

http請求引數??的問題

如題,A專案帶引數傳送請求到B專案。剛開始還好,但是發覺 引數帶中文 就出現問題了,變成了?? 解決方法:傳送中文引數前先做處理 request.getSession().removeAttribute("pass");request.getSession().removeAttribute("type"

研究基於spring通過對http請求資料的預處理(資料加解密校驗日誌)(2)過攔截器篇

上文已經詳細講解了如何對request進行處理,本文主要是案例演示 spring MVC 的寫法 新增攔截器 定義一個攔截器 public class AppRequestIntercept

jmeter中http請求引數

一、建立執行緒組 為什麼所有的請求都要加入執行緒組這個元件呢?不加不行嗎?答案當然是不行的。因為jmeter的所有任務都必須由執行緒處理,所有任務都必須線上程組下面建立。 二、新增HTTP請求 三、新增配置檔案(即你的引數檔案)

獲取資料庫表資料作為HTTP請求引數(mysql為例)

目錄 寫在前面:因為是邊操作邊寫的,之前截的圖有些注意事項沒有說清楚,所以圖片有些調整之後是後面補進去的,所以看著圖片前後有點一樣。但操作順序說明是沒問題的。 當然這個也是參考了各位網上的大神的經驗並一一試驗得出來的結果。如

Post方式傳送http請求引數

 public boolean uploadPostMethod(String path, Map<String, String> params) throws IOException{ StringBuilder sb = new StringBuilde