一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“Requests请求参数和响应内容”。
1. requests.request-请求参数
requests.request (method, url, **kwargs):
method:请求方法--get,post,put,delete等
url: 请求路径
params:get请求参数,一般字典格式
data:post请求参数,字典格式
json:post请求参数,字典格式
headers:请求的header,字典类型
cookies:请求的cookie,字典类型
files:上传的文件,字典类型
auth: 进行HTTP认证,元组
verify:是否验证server的TSL证书,布尔值
timeout:设定超时时间,数值
allow_redirects:是否运行重定向,布尔值
stream:响应内容是否直接下载,布尔值
#登录ecshop
url = 'http://localhost/ecshop/user.php'
data = {'username':'user001','password':'user001','act':'act_login'}
#re = requests.post(url,data)
re = requests.request('post',url=url,data=data)
print(re.content.decode('utf-8'))
2. requests-get请求参数
get请求特点: 请求参数在url中或params中均可。
response = requests.get(url)
response = requests.get(url, params=None)
response = requests.get(url, params=None, **kwargs)
# #get 价格查询接口
# #方法一:请求参数直接放在URL中
# url = 'http://localhost/ecshop/goods.php?act=price&id=55&attr=&number=1'
# res1 = requests.get(url)
# print(res1.content.decode('unicode-escape'))
# #json()函数返回一个字典
# result = res1.json() #如果返回的数据是json格式,可以使用json方法获取响应体,然后获取对应的值
# print(type(result))
# print(result['err_msg'])
# print(result['result'])
# print(result['qty'])
#
# #方法二:get请求参数放到params参数中
# url = 'http://localhost/ecshop/goods.php'
# #?act=price&id=55&attr=&number=2&160248987409898
# params = {
# "act" : "price",
# "id":55,
# "attr" : None,
# "number" : 2,
# 160248987409898:None
# }
#
# res1 = requests.get(url,params=params)
# if res1.status_code == 200:
# print(res1.json()["result"])
3. requests-post请求参数
post请求特点: 请求参数在body中,参数为data和json。
response = requests.post(url,data=data)
response = requests.get(url, json=json)
#post方法:登录
url = 'http://localhost/ecshop/user.php'
param = {
"username":'user001',
"password":'user001',
"act":"act_login",
"submit":None
}
res1 = requests.post(url,data=param)
if res1.status_code == 200:
print(res1.text)
else:
print(res1.status_code)
4. requests—接收响应,中文乱码处理
response = requests.get(url, params=None, **kwargs) #获取响应对象
响应对象的属性和方法:
response.status_code #获取响应结果码
response.encoding #获取响应的编码格式
response.headers #获取响应头
response.content #获取二进制形式响应内容
response.text #获取字符串形式响应内容
response.json() #获取json格式响应内容
response.url #获取请求的url
代码示例:
import requests
# url = "http://www.baidu.com"
# res1 = requests.get(url)
# print('URL:',res1.url)
# print('响应码:',res1.status_code)
# print('响应头:',res1.headers)
# print('响应体:',res1.text)
# #中文乱码的解决
# #方法一:通过apparent_encoding指定解码时的类型
# print(res1.encoding) #根据客户端信息,采取解码格式 ISO-8859-1
# print(res1.apparent_encoding) #根据内容推断解码格式 utf-8
# res1.encoding = res1.apparent_encoding
# print(res1.text)
#
# #方法二:在字节码的基础上,直接对内容做解码处理
# print(res1.content) #content是字节码内容
# print(res1.content.decode('utf-8'))
# #商品总价查询接口
# url = 'http://localhost/ecshop/goods.php?act=price&id=55&attr=&number=2&160248987409898'
# res1 = requests.get(url)
# print(res1.encoding)
# print(res1.apparent_encoding) #推测的编码不一定正确
# print(res1.content.decode('unicode-escape'))
今天关于“Requests请求参数和响应内容”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!