Python-接口自动化(七)

2023-01-31 00:01:33 python

(八)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())

 

 以上,第七部分到此结束~

相关文章