接口自動化的框架很多,python對應的類庫也很多,但request類庫相信對大家來說還是最熟悉的,本篇將圍繞request給大家介紹接口自動化中常用的功能。
引入requests包是基礎操作
import requests
構造一個最簡單的get請求:
r = requests.get('http://httpbin.org/get') print r.text 返回數據 { "args": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.1", "X-Amzn-Trace-Id": "Root=1-5e3796cd-6fe9ebd9419d893ca4b67275" }, "origin": "49.72.104.32", "url": "http://httpbin.org/get" }
在get請求中添加參數的兩種方式:
r = requests.get('http://httpbin.org/get?name=cctester&age=6') data={'name':'cctester','age':'6'} r=requests.get('http://httpbin.org/get', params=data) print r.text 這兩種請求方式本質是一樣的; 返回數據: { "args": { "age": "6", "name": "cctester" }, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.1", "X-Amzn-Trace-Id": "Root=1-5e379a18-7661065e852f531c4f569118" }, "origin": "49.72.104.32", "url": "http://httpbin.org/get?name=cctester&age=6" }
構造post請求:
data = {'name': 'cctester', 'skill': 'coding'}
r = requests.post('http://httpbin.org/post', data=data)
print(r.text)
{
"args": {},
"data": "",
"files": {},
"form": {
"name": "cctester",
"skill": "coding"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "26",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.18.1",
"X-Amzn-Trace-Id": "Root=1-5e37a7bb-15fedde4881a9f1abbf7590e"
},
"json": null,
"origin": "49.72.104.32",
"url": "http://httpbin.org/post"
}
打印cookie
r = requests.get('https://www.taobao.com') print(r.cookies)
session保持
# 請求改為由session發起 s = requests.Session() # 設置cookie s.get('http://httpbin.org/cookies/set/number/123456789') print s.cookies # 讀取cookie r = s.get('http://httpbin.org/cookies') print(r.text) 輸出內容 <RequestsCookieJar[<Cookie number=123456789 for httpbin.org/>]> { "cookies": { "number": "123456789" } }
往期內容推薦:
python中的dumps和loads區別
如何在 Python的類中定義私有變量
更多內容關注公眾號:猿桌派
