一、什么是Requests
Requests 是⽤Python语⾔编写,基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库。它⽐ urllib 更加⽅便,可以节约我们⼤量的⼯作,完全满⾜HTTP测试需求。
二、安装Requests库
进入命令行win+R,执行命令:pip install requests
项目导入:import requests
三、各种请求方式
GET: 请求指定的页面信息,并返回实体主体。
HEAD: 只请求页面的首部。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
PATCH: 向html提交局部修改的请求
requests.patch
和request.put
类似,两者不同的是:
当我们用patch
时仅需要提交需要修改的字段;而用put
时,必须将20个字段一起提交到url
,未提交字段将会被删除。 patch
的好处是:节省网络带宽
(1)GET请求
response = requests.get('http://httpbin.org/get')
response = requests.get("http://httpbin.org/get?name=germey&age=22")
#添加params参数
data = {name': 'germey','age': 22}
response = requests.get("http://httpbin.org/get", params=data)
#添加headers参数
headers = {"Accept": "application/json, text/plain, */*", 'token': token}
response = requests.get("发现 - 知乎", headers=headers)
(2)POST请求
payload = {'name': 'germey', 'age': '22'}
response = requests.post("http://httpbin.org/post", data=payload)
response = requests.post("http://httpbin.org/post", data=json.dumps(payload))
#文件上传
files = {'file': open('cookie.txt', 'rb')}
response = requests.post("http://httpbin.org/post", files=files)
(3)PUT请求
payload={"key1":"value1","key2":"value2"}
r=requests.put("http://httpbin.org/put",data=payload)
(4)HEAD请求
r=requests.head("http://httpbin.org/get")
(5)DELETE请求
response = requests.delete(url=url, headers=headers)
(6)响应
返回码:response.status_code
返回体:response.json()
token = response.json()['data']['token']
返回headers:response.headers
获取二进制数据:response.content
返回cookies:response.cookies
(7)高级操作
#超时设置
response = requests.get("http://httpbin.org/get", timeout = 0.5)
#认证设置
from requests.auth import HTTPBasicAuth
response = requests.get("http://120.27.34.24:9001/",auth=HTTPBasicAuth("user","123"))
response = requests.get("http://120.27.34.24:9001/",auth=("user","123"))