42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
||
import requests
|
||
import json
|
||
from requests.exceptions import ConnectionError
|
||
|
||
from logger import logger
|
||
|
||
|
||
class Request(object):
|
||
|
||
@classmethod
|
||
def go(cls, method, url, params, headers=None, noFormat=False):
|
||
# logger.info(f'发送{method}请求到: {url}, 参数: {params}')
|
||
try:
|
||
if method == 'get':
|
||
response = requests.get(url=url, params=params, headers=headers, timeout=200)
|
||
elif method == 'post':
|
||
response = requests.post(url=url, data=json.dumps(params), headers=headers, timeout=200)
|
||
else:
|
||
logger.error(f'暂不支持{method}方法')
|
||
return
|
||
except ConnectionRefusedError:
|
||
logger.error(f'服务请求失败:{url}')
|
||
return
|
||
except ConnectionError:
|
||
logger.error(f'服务无法链接: {url}')
|
||
return
|
||
if response.status_code != 200:
|
||
logger.error(f'返回码不等于200,请检查服务!{response.status_code}, {response.text}')
|
||
else:
|
||
resp_json = response.json()
|
||
# logger.info(f'返回内容:{resp_json}')
|
||
# noFormat: 不需要对返回内容进行校验,直接返回整个response
|
||
if noFormat:
|
||
return resp_json
|
||
# 对response做校验,返回体为qe平台的通用格式
|
||
if resp_json.get('success') or resp_json.get('code') == 20000:
|
||
return resp_json.get('data')
|
||
else:
|
||
logger.error(resp_json)
|
||
return
|