http請求更多的是post請求,我們可以:
查看說明:
很多網站在登錄的時候需要加上頭部信息即headers,這個信息可以通過抓包工具獲得——fiddler,一個輕量級的抓包工具,大神用了都說好~
這里模擬一下博客園的登錄,先在前段模擬一下登錄操作,后台開着fiddler抓取登錄信息:
獲取到這些信息以后,就可以在代碼中寫好headers信息,以及登錄需要的信息了:
#coding: utf-8
import requests
def post_info():
url = "https://passport.cnblogs.com/user/signin"
headers = {
"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'zh-CN,zh;q=0.8',
'Content-Type': 'application/json; charset=UTF-8',
'Content-Length': '385',
'X-Requested-With': 'XMLHttpRequest',
'Cookie': 'UM_distinctid=15ad2746631137-0753f3fbde32fd-591e3916-100200-15ad27466332a0; __gads=ID=b4b937f355218cb8:T=1494253102:S=ALNI_Ma7oKjSqjtXDLAlYH-yb4DlK0kouw; _ga=GA1.2.1665904319.1495250472; _gid=GA1.2.1373367502.1495252278; SERVERID=9b2e527de1fc6430919cfb3051ec3e6c|1495252557|1495250466',
'Connection': 'keep-alive'}
payload = {
#這是我的用戶名和密碼(已改成錯誤的)
"input1": 'kCEho2Gs9jgtYnvxvo03tHsYygiyg/G618KdRuk=',
'input2': 'nO1f0itXBsUem+vY4JlR7lkSeqN3OkTWmdSBI=',
'remember': True}
r = requests.post(url, json=payload, headers=headers, verify=False)
return r.json()
調用該函數:
print post_info()
可以看到返回登錄成功提示:
代碼說明:
1.由於這里是https請求,直接發送請求會報錯誤:SSLError: [SSL: CERTIFICATE_VERIFY_FAILED]certificate verify failed,可以加個參數:verify=False,表示忽略對 SSL 證書的驗證
2.最后結果是json格式,可以直接用r.json返回json數據:{u'success': True}
到這里,我們就知道post請求的方式了,接下來,就可以實現我們的終極目標——接口測試了。
微信公眾號搜索“自動化測試實戰”或掃描下方二維碼添加關注~~~