在自动化测试框架的学习中,除了以selenium+python你的UI自动化框架的编写,还有接口自动化框架的编写,其中requests库则是一个非常需要的python库,且requests库非常强大,目前的爬虫如果用python语言编写也需要用到requests库,下面先来学习语言基础requests库吧
官方文档 :http://www.python-requests.org/en/master/
中文文档:http://cn.python-requests.org/zh_CN/latest/
安装:pip install requests
看着官方文档从基础开始学习
一、发送请求
import requests
r = requests.get('https://github.com/timeline.json')
- 1
- 2
#发送post请求也可采用这种形式
r2 = requests.post("http://httpbin.org/post")
#其它类型的接口也可以采用这种形式
requests.put('url')
request.delete('url)
- 1
- 2
- 3
- 4
- 5
二、传递URL参数
如下可以为url添加参数,只需要在url后添加一个params
参数即可,参数可以为字典类型,同时也可以将列表作为值传入
import requests
payload = {'key1':'value1','key2':'value2'}
r = requests.get("http://httpbin.org/get",params=payload)
print(r.url)
>>http://httpbin.org/get?key2=value2&key1=value1
payload2={'key1':'value1','key2':['value2','value3']}
r2 = requests.get("http://httpbin.org/get",params=payload2)
print(r2.url)#获取请求的url
>>http://httpbin.org/get?key2=value2&key2=value3&key1=value1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
三、响应内容
import requests
r = requests.get('https://github.com/timeline.json')
print(r.text) #展示响应的信息
print(r.encoding)#响应编码
- 1
- 2
- 3
- 4
1、二进制响应内容(r.content)
import requests
r = requests.get('https://github.com/timeline.json')
print(r.content)
>>b'{"message":"Hello there, wayfaring stranger. If you\xe2\x80\x99re......."}'
- 1
- 2
- 3
- 4
2、json响应内容(r.json())
import requests
r = requests.get('https://github.com/timeline.json')
print(r.json())
>>{'notifications_url': 'https://api.github.com/notifications', 'emojis_url': 'https://api.github.com/emojis'}
print(r.raise_for_status)
>><bound method Response.raise_for_status of <Response [200]>>
print(r.status_code)
>>200
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
注:成功调用 r.json()并不意味着相应请求成功,要检查请求是否成功,请使用 r.raise_for_status()
或者检查 r.status_code
是否和你的期望相同
3、原始响应内容
import requests
r = requests.get('https://github.com/timeline.json',stream=True)
print(r.raw)
print(r.raw.read(50))
- 1
- 2
- 3
- 4