Http請求的時候,須要傳遞參數給後端,通常都是key-value的形式,傳遞的方法有不少種
例如須要傳遞的數據是
dict(key1=value1,key2=value2)python
把參數放在URL中,適用於全部的HTTP請求Method,例如GET,POST
例如:
http://www.baidu.com?key1=value1&key2=value2;web
對應requests模塊的params參數。例如result=requests.post(url,params=data)
Flask框架中,經過form或者values獲取請求數據,例如request.args.get('key1')
json
也就是經過HTML的FORM標籤,傳遞數據給後端的方法
整個HTTP請求內容是這樣的:後端
POST /test?url_key=value1 HTTP/1.1 Host: 192.168.137.130 Cache-Control: no-cache ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="key1" value1 ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="key2" value2 ----WebKitFormBoundaryE19zNvXGzXaLvS5C
把參數放在請求體中,使用--webkit這些協議包裹。因爲須要用到請求體,因此不支持GET Method。
Flask框架中,經過form或者values獲取請求數據,例如request.form.get('key1')
app
跟form-data相似,也是把傳遞的數據放在請求體,不過請求體的形式相對簡單,跟URL參數的形式同樣。
即把傳遞數據轉換爲URL參數的形式,而後放在請求體中,而不是請求的URL中。
同時須要加入請求頭:框架
Content-Type: application/x-www-form-urlencoded
整個請求內容post
POST /test?url_key=value1 HTTP/1.1 Host: 192.168.137.130 Cache-Control: no-cache Content-Type: application/x-www-form-urlencoded key1=value1&key2=value2
對應requests的data參數。例如result=requests.post(url,data=data)
Flask框架中,經過form或者values獲取請求數據,例如request.form.get('key1')
url
請求體放JSON格式的傳遞數據
設置請求頭:code
Content-Type: application/json
整個請求內容orm
POST /test?url_key=value1 HTTP/1.1 Host: 192.168.137.130 Content-Type: application/json Cache-Control: no-cache {"key2": "value2", "key1": "value1"}
對應requests模塊的json參數。例如result=requests.post(url,json=data)
Flask框架中,經過json獲取請求數據,例如request.json.get('key1')
其餘
url='http://192.168.137.130/test' data=dict(key1='value1',key2='value2') result=requests.post(url,json=data) print result.request.headers print result.request.body
博文爲做者原創,未經容許,禁止轉載。