requests实例-带参数的
1.使用moco搭建一个接口
创建一个文件夹moco2
放入文件:moco-runner-1.0.0-standalone.jar , configure.json以及一个res.py文件
2.configure.json
[
{
"description": "模拟获取某个功能的具体信息接口,get请求和响应,返回json格式数据,无参数",
"request": {
"method": "get",
"uri": "/book_list"
},
"response": {
"json": {
"error_code": 0,
"reason": "successed",
"books": "软件测试",
"checkstatus": "on"
},
"status": 200
}
},
{
"description": "模拟获取某个功能的具体信息接口,get请求和响应,返回json格式数据,有参数",
"request": {
"method": "get",
"uri": "/book_info",
"queries": {
"bookname": "软件测试",
"checkstatus": "on"
}
},
"response": {
"json": {
"error_code": 0,
"reason": "successed",
"name": "软件测试",
"price": "666"
},
"status": 200
}
},
{
"description": "模拟接口,post_form请求和响应,入参是form形式,返回是json数据",
"request": {
"headers": {
"content-type": "application/x-www-form-urlencoded"
},
"method": "post",
"uri": "/login01",
"forms": {
"username": "zhangshan",
"password": "123456"
}
},
"response": {
"json": {
"error_code": 0,
"reason": "successed",
"username": "zhangshan",
"checkstatus": "on"
},
"status": 200
}
},
{
"description": "模拟接口,post_json请求和响应,入参是json形式,返回是json数据",
"request": {
"method": "post",
"uri": "/login02",
"json": {
"username": "zhangshan",
"password": "123456"
}
},
"response": {
"headers": {
"Content-Type": "application/json;charset=utf-8"
},
"json": {
"error_code": 0,
"reason": "successed",
"username": "zhangshan",
"checkstatus": "on"
},
"status": 200
}
}
]
浏览器访问网址
http://127.0.0.1:8888/book_list
http://127.0.0.1:8888/book_info?bookname=软件测试&checkstatus=on
3.代码实例
1.get请求
import json
import requests
# get
url = \'http://127.0.0.1:8888\'
path = \'/book_list\'
full_url = url + path
print(\'GET 请求完整的url\', full_url)
headers_dict = {}
print(\'GET 请求完整的请求头\', headers_dict)
res = requests.get(full_url, headers=headers_dict, )
print(\'GET 响应状态码\', res.status_code)
print(\'GET 响应头\', res.headers)
print(\'GET 响应结果\', res.text)
print(\'GET 响应时间\', res.elapsed.total_seconds(), \'秒\')
json_res = res.json()
print(\'GET 响应结果\', json_res)
# get_queries
url = \'http://127.0.0.1:8888\'
path = \'/book_info\'
full_url = url + path
print(\'GET 请求完整的url\', full_url)
# \'checkstatus\'=\'on\' 是get与get_queries的关联依赖参数
data = json.loads(res.text) # 把json转成字典类型
checkstatus = data[\'checkstatus\'] # 字典取值
params_dict = {\'bookname\': \'软件测试\', \'checkstatus\': checkstatus}
print(\'GET 请求完整的参数\', params_dict)
headers_dict = {}
print(\'GET 请求完整的请求头\', headers_dict)
res = requests.get(full_url, params=params_dict, headers=headers_dict, )
print(\'GET 响应状态码\', res.status_code)
print(\'GET 响应头\', res.headers)
print(\'GET 响应结果\', res.text)
print(\'GET 响应时间\', res.elapsed.total_seconds(), \'秒\')
json_res = res.json()
print(\'GET 响应结果\', json_res)
2.post请求
import json
import requests
# post_forms
url = \'http://127.0.0.1:8888\'
path = \'/login01\'
full_url = url + path
print(\'POST 请求的完整url\', full_url)
data = {"username": "zhangshan", "password": "123456"} # 传入json格式
print(\'POST 请求参数\', data)
headers_dict = {\'Content_Type\': \'application/x-www-form-urlencoded\'} # forms格式
res2 = requests.post(full_url, data=data, headers=headers_dict)
print(\'POST 响应状态码\', res2.status_code)
print(\'POST 响应头\', res2.headers)
print(\'POST 响应结果\', res2.text)
print(\'POST 响应时间\', res2.elapsed.total_seconds(), \'秒\')
json_res2 = res2.json()
print(\'POST 响应结果\', json_res2)
# post_json
url = \'http://127.0.0.1:8888\'
path = \'/login02\'
full_url = url + path
print(\'POST 请求的完整url\', full_url)
data = {"username": "zhangshan", "password": "123456"} # 传入json格式
data = json.dumps(data) # python类型转化为json字符串
print(\'POST 请求参数\', data)
headers_dict = {\'Content_Type\': \'application/json\'} # json格式
res3 = requests.post(full_url, data=data, headers=headers_dict)
print(\'POST 响应状态码\', res3.status_code)
print(\'POST 响应头\', res3.headers)
print(\'POST 响应结果\', res3.text)
print(\'POST 响应时间\', res3.elapsed.total_seconds(), \'秒\')
json_res3 = res3.json()
print(\'POST 响应结果\', json_res3)
4.封装成函数
1.get请求
import requests
def get(full_url, headers_dict):
# try 抛出异常
try:
res = requests.get(full_url, headers=headers_dict, )
print(\'GET 响应状态码\', res.status_code)
print(\'GET 响应头\', res.headers)
print(\'GET 响应结果\', res.text)
print(\'GET 响应时间\', res.elapsed.total_seconds(), \'秒\')
json_res = res.json()
print(\'GET 响应结果\', json_res)
return json_res
except Exception as e:
print(\'get错误\')
url = \'http://localhost:8888\'
path = \'/book_list\'
full_url = url + path
headers_dict = {}
res = get(full_url, headers_dict)
# 通过业务状态码判断是否成功
if res[\'error_code\'] == 0:
print(\'成功\')
else:
print(\'失败\')
def get_queries(full_url, params_dict, headers_dict):
# try 抛出异常
try:
res1 = requests.get(full_url, params=params_dict, headers=headers_dict, )
print(\'GET 响应状态码\', res1.status_code)
print(\'GET 响应头\', res1.headers)
print(\'GET 响应结果\', res1.text)
print(\'GET 响应时间\', res1.elapsed.total_seconds(), \'秒\')
json_res1 = res1.json()
print(\'GET 响应结果\', json_res1)
return json_res1
except Exception as e:
print(\'get错误\')
url = \'http://localhost:8888\'
path = \'/book_info\'
full_url = url + path
params_dict = {\'bookname\': \'软件测试\', \'checkstatus\': \'on\'}
headers_dict = {}
res1 = get_queries(full_url, params_dict, headers_dict)
# 通过业务状态码判断是否成功
if res1[\'error_code\'] == 0:
print(\'成功\')
else:
print(\'失败\')
2.post请求
import requests
import json
def post_forms(full_url, data, headers_dict):
try:
res2 = requests.post(full_url, data=data, headers=headers_dict)
print(\'POST 响应状态码\', res2.status_code)
print(\'POST 响应头\', res2.headers)
print(\'POST 响应结果\', res2.text)
print(\'POST 响应时间\', res2.elapsed.total_seconds(), \'秒\')
json_res2 = res2.json()
print(\'POST 响应结果\', json_res2)
return json_res2
except Exception as e:
print(\'post_forms 错误\')
url = \'http://localhost:8888\'
path = \'/login01\'
full_url = url + path
data = {"username": "zhangshan", "password": "123456"}
headers_dict = {\'content_type\': \'application/x-www-form-urlencoded\'} # forms格式
res2 = post_forms(full_url, data, headers_dict)
if res2[\'checkstatus\'] == \'on\':
print(\'成功\')
else:
print(\'失败\')
def post_json(full_url, data, headers_dict):
try:
res3 = requests.post(full_url, data=data, headers=headers_dict)
print(\'POST 响应状态码\', res3.status_code)
print(\'POST 响应头\', res3.headers)
print(\'POST 响应结果\', res3.text)
print(\'POST 响应时间\', res3.elapsed.total_seconds(), \'秒\')
json_res3 = res3.json()
print(\'POST 响应结果\', json_res3)
return json_res3
except Exception as e:
print(\'post_json错误\')
url = \'http://localhost:8888\'
path = \'/login02\'
full_url = url + path
data = {"username": "zhangshan", "password": "123456"}
data = json.dumps(data)
headers_dict = {\'content_type\': \'application/json\'} # json 格式
res3 = post_json(full_url, data, headers_dict)
if res3[\'checkstatus\'] == \'on\':
print(\'成功\')
else:
print(\'失败\')
5.封装成类
类中有四个方法
import json
import requests
class Httprequests():
def get(self, full_url, headers_dict):
# try 抛出异常
try:
res = requests.get(full_url, headers=headers_dict, )
print(\'GET 响应状态码\', res.status_code)
print(\'GET 响应头\', res.headers)
print(\'GET 响应结果\', res.text)
print(\'GET 响应时间\', res.elapsed.total_seconds(), \'秒\')
json_res = res.json()
print(\'GET 响应结果\', json_res)
return json_res
except Exception as e:
print(\'get错误\')
def get_queries(self, full_url, params_dict, headers_dict):
# try 抛出异常
try:
res1 = requests.get(full_url, params=params_dict, headers=headers_dict, )
print(\'GET 响应状态码\', res1.status_code)
print(\'GET 响应头\', res1.headers)
print(\'GET 响应结果\', res1.text)
print(\'GET 响应时间\', res1.elapsed.total_seconds(), \'秒\')
json_res1 = res1.json()
print(\'GET 响应结果\', json_res1)
return json_res1
except Exception as e:
print(\'get错误\')
def post_forms(self, full_url, data, headers_dict):
try:
res2 = requests.post(full_url, data=data, headers=headers_dict)
print(\'POST 响应状态码\', res2.status_code)
print(\'POST 响应头\', res2.headers)
print(\'POST 响应结果\', res2.text)
print(\'POST 响应时间\', res2.elapsed.total_seconds(), \'秒\')
json_res2 = res2.json()
print(\'POST 响应结果\', json_res2)
return json_res2
except Exception as e:
print(\'post_forms 错误\')
def post_json(self, full_url, data, headers_dict):
try:
res3 = requests.post(full_url, data=data, headers=headers_dict)
print(\'POST 响应状态码\', res3.status_code)
print(\'POST 响应头\', res3.headers)
print(\'POST 响应结果\', res3.text)
print(\'POST 响应时间\', res3.elapsed.total_seconds(), \'秒\')
json_res3 = res3.json()
print(\'POST 响应结果\', json_res3)
return json_res3
except Exception as e:
print(\'post_json错误\')
obj = Httprequests() # 实例化对象 类名()
url = \'http://localhost:8888\'
path = \'/book_list\'
full_url = url + path
headers_dict = {}
res = obj.get(full_url, headers_dict) # 通过实例化的对象.
# 通过业务状态码判断是否成功
if res[\'error_code\'] == 0:
print(\'成功\')
else:
print(\'失败\')
obj1 = Httprequests() # 实例化对象 类名()
url = \'http://localhost:8888\'
path = \'/book_info\'
full_url = url + path
params_dict = {\'bookname\': \'软件测试\', \'checkstatus\': \'on\'}
headers_dict = {}
res1 = obj1.get_queries(full_url, params_dict, headers_dict) # 通过实例化的对象.
# 通过业务状态码判断是否成功
if res1[\'error_code\'] == 0:
print(\'成功\')
else:
print(\'失败\')
obj2 = Httprequests() # 实例化对象 类名()
url = \'http://localhost:8888\'
path = \'/login01\'
full_url = url + path
data = {"username": "zhangshan", "password": "123456"}
headers_dict = {\'content_type\': \'application/x-www-form-urlencoded\'} # forms格式
res2 = obj2.post_forms(full_url, data, headers_dict)
if res2[\'checkstatus\'] == \'on\':
print(\'成功\')
else:
print(\'失败\')
obj3 = Httprequests() # 实例化对象 类名()
url = \'http://localhost:8888\'
path = \'/login02\'
full_url = url + path
data = {"username": "zhangshan", "password": "123456"}
data = json.dumps(data)
headers_dict = {\'content_type\': \'application/json\'} # json 格式
res3 = obj3.post_json(full_url, data, headers_dict)
if res3[\'checkstatus\'] == \'on\':
print(\'成功\')
else:
print(\'失败\')