(八)requests模块
1、requests是用python语言编写,属于第三方库,基于urllib,采用Apache2 Licensed开源协议的Http库,它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求,总结成一句话就是:requests是用Python实现的简单好用的http库。
2、安装(以我自己的电脑安装为例,也可自行百度进行安装)
我的电脑是Mac,版本是python3,之前在电脑上安装过homebrew,因为python3安装之后就会自动安装pip3,所以安装requests就可以直接在终端上输入:pip3 install requests,回车之后等安装完毕就可以了。
3、运用
例如:
1 import requests
2
3 # get请求
4 url = 'http://www.baidu.com'
5 res = requests.get (url) # 返回一个消息实体(响应头 响应状态码 响应报文)
6 print (res)
7
8 print ("响应头", res.headers)
9
10 print ("响应状态码", res.status_code)
11
12 print ("响应报文", res.text)
1 import requests
2
3 # post请求
4 url = 'https://www.baidu.com/login'
5 data = {"mobilephone": "18784844884", "pwd": "123456"}
6 res = requests.post (url, data)
7 print (res)
8 print ("响应头", res.headers)
9
10 print ("响应状态码", res.status_code)
11
12 print ("响应报文", res.text)
一般返回的报文内容是html、xml、json格式的话可以用text来获取返回的内容,只有json格式的返回值才会支持json(推荐使用json,方便取值),html、xml格式的如果用json来获取返回的内容会报错。
再例如:
?可以用任意网站写代码进行测试或验证,下面这是最基本的利用requests来发起post和get请求。
1 import requests
2
3
4 class HttpRequest:
5 '''利用requests封装get请求和post请求'''
6
7 def http_request(self,url,data,method,cookie=None):
8 '''URL:请求的地址
9 param:传递的参数
10 cookie:请求的时候传递的cookie值
11 method:请求的时候支持get和post 字符串形式的参数'''
12 if method.lower()=='get':
13 res = requests.post (url, data,cookies=cookie)#响应结果的消息实体
14 else:
15 res=requests.get(url,data,cookies=cookie)#响应结果的消息实体
16 return res #返回一个消息实体
17
18
19 if __name__ == '__main__':
20 url = 'http://xx.xx.xxx/login'
21 data = {"mobilephone": "test", "pwd": "test"}
22 res=HttpRequest ().http_request (url,data,'post')
23 print("登录结果是",res.JSON())
24
25 # 充值
26 recharge_url='http://xx.xx.xxx/recharge'
27 recharge_data={"mobilephone":"test","amount":"1000"}
28 recharge_res=HttpRequest().http_request(recharge_url,recharge_data,'get',res.cookies)
29 print("充值的结果是",recharge_res.json())
以上,第七部分到此结束~