python 模擬Http請求

2021-08-08 14:17:09 字數 1136 閱讀 8814

先簡單宣告一下http請求中post和get之間乙個簡單的區別:

get請求的資料會附在url之後(就是把資料放置在http協議頭中),以?分割url和傳輸資料,引數之間以&相連,如:login.action?name=hyddd&password=idontknow&verify=%e4

%bd%a0

%e5%a5

%bd。如果資料是英文本母/數字,原樣傳送,如果是空格,轉換為+,如果是中文/其他字元,則直接把字串用base64加密,得出如:%e4

%bd%a0

%e5%a5

%bd,其中%xx中的xx為該符號以16進製表示的ascii。

post把提交的資料則放置在是http包的包體中。

傳送請求模擬:

import requests

payload =

r = requests.post(url,data=payload)

print r.content

而在django中獲取payload這個引數:

body = request.body

json.dumps(urllib.unquote(vaule),encoding='utf-8',ensure_ascii=false)

傳給request的引數為中文經過轉碼的,如圖「**********==start**********」的下一行change_type的值%e6%96:

找了好久才知道解決方案!

至於原理,這篇文章講的不錯!

——————-分割線為更新——————–

同事突然傳了json資料給我,不傳dict,然後,我發現就不會這麼麻煩了!

傳過來的json資料直接進行json.loads(data)就可以使用了。好方法!

後來,我用django的httpresponse對面傳輸的時候,直接傳了字典,結果同事只是拿到key,不能拿到value。才發現,如果傳dict會很不好。果斷傳json資料了!

總結:在http各種請求的時候,傳輸的資料最好使用json資料格式

python模擬http請求

下文主要講述如何利用python自帶的庫模擬http請求,為以後利用python做api測試做準備。只講述模擬http的過程,具體到自己用的時候,要以自己的應用為準做出適當的調整。coding utf 8 相信這句大家都懂的,不解釋 匯入需要的python模組httplib,用來模擬提交http請求...

python模擬http請求2

發現了乙個非常好用的第三方module requests,模擬介面非常簡單。詳細了解請移步 非常不錯 coding utf 8 相信這句大家都懂的,不解釋 匯入需要的requests import requests 定義請求頭 定義post的引數,requests模組,引數不用編碼 reqdata ...

Python模擬HTTP的POST請求

python版本2.7.9 模擬post請求 1 coding u8 2import urllib 3import urllib2 45 url u 6 params urllib.urlencode 78 req urllib2.request url,params 9 response urll...