4 代码
# requests练习代码
# 1.get请求
# 2.post请求
# 3.md5的加密(验签、令牌)
# 4.上传文件
ip = 'http://127.0.0.1:8080'
#请求的地址
import requests
def test_get():
url = 'http://127.0.0.1:8080/pinter/com/getSku/'
#1:get请求
# 请求的内容-表单形式
params = {'id':1}#在requests里,表单形式的入参。要写成'字典'这种数据格式
r = requests.get(url = url,params=params)#用一个变量,接收响应
print(r.text)#把响应信息打印出来(以文本形式)
# 2.post请求
# 2.1拼接url,解决不同测试服务
def test_post():
ip = 'http://127.0.0.1:8080'
url = '/pinter/com/login'
url = ip + url
#2.2请求内容,使用data参数
data = {'userName':'admin','password':1234}
r = requests.post(url = url,data = data)
print('用文本展示响应:',r.text,type(r.text))
# 2.3使用requests对象的.json(),来解析响应。
print('requests自动转换json响应',r.json(),type(r.json()))
# 3.md5加密(验签sign)
url = ip + '/pinter/com/userInfo'
# sign一般是通过,对几个字段做拼接。然后再用算法进行加密,来生成的
# 现在用 手机号+校验字串+时间戳 来模拟一个验签
def test_md5():
import time
import hashlib
phonenum=15210987678#通过测试数据本身,动态的获取
optcode = 'testfan'#通过配置
timestr=str(int(time.time()*1000))#用库动态生成出来
sign = str(phonenum) + optcode + timestr
# 用算法进行加密
sign_md5 = hashlib.md5(sign.encode()).hexdigest()
print(sign_md5)
json = {"phoneNum":"123434",
"optCode":"testfan",
"timestamp":"12112121212",
"sign":sign_md5}
r = requests.post(url=url,json=json)
print(r.json())
#需要验签的接口怎么处理?
# 1.验签由那几个字段组成
# 随机计算
# 从数据库、响应获取
# 配置或写死
# 2.验签的加密算法是什么
# 要了解加密算法
# 甲公司 - php - md5加密
# 用python实现加密算法
# 4.上传文件
url = '/pinter/file/api/upload'
url = ip + url
#报文内容是文件
data = {'file':'./data.txt'}
r = requests.post(url = url,files = data)
print(r.text)
# requests库的使用
# 1.要准备好url
# 2.要准备好请求内容
# get请求的内容:params
# 普通的表单形式:data
# json形式:json
# 上传文件:files
# 3.新建变量接收结果 and 发送请求
# 发送请求:把准备好的参数放到requests.get、post里
# 接收结果:text文本形式接收,对json响应可以自动转换成字典
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
上次更新: 2023/09/05, 02:16:11