python接口自動化測試 - requests庫的基礎使用


簡單介紹

requests庫簡單易用的HTTP庫

   

Get請求

格式: requests.get(url) 

注意:若需要傳請求參數,可直接在 url 最后的 ? 后面,也可以調用 get() 時多加一個參數 params ,傳入請求參數,注意需要是 dict 格式;如下圖所示

 1     url = 'http://127.0.0.1:8888/passport/user/login'
 2     param = {
 3         'username': '123',
 4         'password': '321'
 5     }
 6 
 7     """通過params傳參"""
 8     res = requests.get(url, params=param)
 9     # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
10     print(res.json())
11 
12     """通過params方式傳參,最終發出的url也是一致的"""
13     # http://127.0.0.1:8888/passport/user/login?username=123&password=321
14     print(res.url)
15 
16     """通過url最后加上請求參數列表"""
17     url = 'http://127.0.0.1:8888/passport/user/login?username=123&password=321'
18     res = requests.get(url, verify=False)
19     # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
20     print(res.text)

重點:發送請求賦值的res,可以看成是請求的上下文,既可以獲取請求相關參數值,也可以獲取響應相關參數值

 

Post請求

格式: requests.post(url,data) 

注意:若無請求參數可不傳 data ;當傳入請求參數時,需要傳 dict 格式

 1     url = 'http://127.0.0.1:8888/passport/user/post_login'
 2     data = {
 3         'username': '123',
 4         'password': '321'
 5     }
 6 
 7     """傳入請求參數"""
 8     res = requests.post(url, data=data)
 9     # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
10     print(res.json())
11 
12     """查看請求url"""
13     # http://127.0.0.1:8888/passport/user/post_login
14     print(res.url)

 

其他類型請求

1     r = requests.put('http://httpbin.org/put', data={'key': 'value'}).text
2     r = requests.delete('http://httpbin.org/delete').text
3     r = requests.head('http://httpbin.org/head').text

 

自定義headers和cookies

 1     """自定義headers"""
 2     url = 'https://api.github.com/some/endpoint'
 3     headers = {'user-agent': 'my-app/0.0.1'}
 4 
 5     r = requests.get(url, headers=headers)
 6     # {'message': 'Not Found', 'documentation_url': 'https://developer.github.com/v3'}
 7     print(r.json())
 8 
 9     """自定義cookies"""
10     url = 'http://httpbin.org/cookies'
11     cookies = dict(cookies_are='working')
12     cookies2 = {'cookies_are': 'working'}
13 
14     r = requests.get(url, cookies=cookies)
15     # {'cookies': {'cookies_are': 'working'}}
16     print(r.json())

 

SSL 證書驗證

當發送請求如果報以上錯誤時,可以在請求方法里加多一個字段 verify=False ,就可以解決此問題;此操作是為了免去驗證步驟

url = 'https://www.imooc.com'
res = requests.get(url, verify=False)

 

響應內容

注意:當調用 json() 時,確保響應內容是json格式字符串,否則會報錯

 1     url = 'http://127.0.0.1:8888/passport/user/login'
 2     param = {
 3         'username': '123',
 4         'password': '321'
 5     }
 6     res = requests.get(url, params=param)
 7     print('請求url: ' + res.url)
 8     print('響應內容 json格式: ' + json.dumps(res.json()))
 9     print('響應內容 字符串格式: ' + res.text)
10     print('響應內容 二進制格式: ' + str(res.content))
11     print('響應碼: ' + str(res.status_code))

 

獲取header

注意:headers里面的key是大小寫不敏感的

>>> r.headers['Content-Type']
'application/json'

>>> r.headers.get('content-type')
'application/json'

 

獲取cookies

>>> r.cookies['example_cookie_name']
'example_cookie_value'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM