正文
一:构建http请求
1、构建请求URL参数
https://www.baidu.com/s?wd=安卓
以上边的url为例,?后边的 wd=安卓 就是url参数
可以存在任意多的参数,每个参数之前用&分隔
url参数的格式,术语叫做urlencoded格式。
使用requests发送http请求,可以直接把参数写在url里,例:
import requests
response = requests.get('https://www.baidu.com/s?rsv_idx=1&wd=android')
方法2:把这些参数放到一个字典里面,然后把字典对象传递给 Requests请求方法的 params 参数
import requests
pra = {'rsv_idx':'1','wd':'android'}
response = requests.get('https://www.baidu.com',params=pra)
2、构建请求消息头
每个消息头也就是一种键值对的格式存放数据,所以
构建请求消息头的方法和构建url参数的方式差不多,也是使用字典的形式
把需要发送的参数放到一个字典里面,然后把字典传递给 Requests请求方法的 headers参数
import requests
headers = {
'name':'zp',
'age':'18'
}
response = requests.get('https://www.baidu.com',headers=headers)
3、配合fiddler查看发出的请求
fiddler使用方法可以查看上篇文章 抓包工具fiddler
要让requests 发送请求使用代理,只需要传入一个proxies参数即可
import requests
proxies = {
'http': 'http://127.0.0.1:8888',
'https': 'http://127.0.0.1:8888',
}
pra = {'rsv_idx':'1','wd':'android'}
headers = {
'name':'zp',
'age':'18'
}
response = requests.get('http://mirrors.sohu.com/',proxies=proxies,params=pra,headers=headers)
然后就可以去fiddler去看下我们发送的内容是否和预期一致了
可以看到,fiddler成功抓到了消息包且内容符合预期。
4、构建http请求消息体
API接口测试中,消息体基本上都是文本
常见的消息体格式有三种:urlencoded,xml,json
以json为例:
import requests
payload = {
"Overall":"良好",
"Progress":"30%",
"Problems":[
{
"No" : 1,
"desc": "问题1...."
},
{
"No" : 2,
"desc": "问题2...."
}
]
}
response = requests.get('http://mirrors.sohu.com/',json=payload)