请求基类
主要判断json格式还是form表单,收集token
class BASE_HTTP(object):
'''
HTTP请求父类
'''
def con_type(self, testdata):
try:
# 判断参数的格式是json还是form
if testdata['headers']['Content-Type'] in\
['application/json;charset=UTF-8',
'application/json']:
# 完成请求数据的装配
try:
testdata['data'] = json.dumps(testdata['data'])
except:
testdata['data'] = None
# 根据请求头判断传递参数是否为form
elif testdata['headers']['Content-Type'] in\
['application/x-www-form-urlencoded;charset=UTF-8',
'application/x-www-form-urlencoded']:
pass
except Exception as e:
log.warning(f"content_type 识别失败{e}")
return testdata
def insert_token(self, testdata, token):
if token is not None:
testdata['headers']["Authorization"] = f"Bearer {token}"
else:
pass
return testdata
四种请求子类:
class GET_HTTP(BASE_HTTP):
'''
GET请求子类
'''
def _get(self, testdata={}, token=None):
data = self.insert_token(testdata=testdata, token=token)
try:
re = requests.get(
url=testdata['url'],
headers=testdata['headers'],
params=data['data'])
except:
re = requests.get(
url=testdata['url'],
headers=testdata['headers'])
result = re.json()
return result
class POST_HTTP(BASE_HTTP):
'''
POST请求子类
'''
def _post(self, testdata={}, token=None):
data = self.insert_token(testdata=testdata, token=token)
data = self.con_type(testdata)
re = requests.post(
url=data['url'],
headers=data['headers'],
data=data['data'])
result = re.json()
return result
class PUT_HTTP(BASE_HTTP):
'''
PUT请求子类
'''
def _put(self, testdata={}, token=None):
data = self.insert_token(testdata=testdata, token=token)
data = self.con_type(testdata)
re = requests.put(
url=data['url'],
headers=data['headers'],
data=data['data'])
result = re.json()
return result
class DELETE_HTTP(BASE_HTTP):
'''
GET请求子类
'''
def _delete(self, testdata={}, token=None):
data = self.insert_token(testdata=testdata, token=token)
re = requests.delete(
url=testdata['url'],
headers=testdata['headers'],
data=data['data'])
result = re.json()
return result
主运行方法,实现请求
class RUN_HTTP():
def _request(self, testdata={}, token=None):
try:
method = testdata['method']
except Exception as e:
log.warning(f"请求方法缺失:{e}")
if method in ('get', 'Get', 'GET'):
result = GET_HTTP()._get(testdata=testdata, token=token)
elif method in ('post', 'Post', 'POST'):
result = POST_HTTP()._post(testdata=testdata, token=token)
elif method in ('put', 'Put', 'PUT'):
result = PUT_HTTP()._put(testdata=testdata, token=token)
elif method in ('delete', 'Delete', 'DELETE'):
result = DELETE_HTTP()._delete(testdata=testdata, token=token)
else:
log.info('为找到指定方法,目前支持,post,get,put,delete')
return result