|
@@ -6,10 +6,9 @@
|
|
|
@IDE :PyCharm
|
|
|
"""
|
|
|
import json
|
|
|
-import logging
|
|
|
import time
|
|
|
from django.utils.deprecation import MiddlewareMixin
|
|
|
-
|
|
|
+from Ansjer.config import LOGGER
|
|
|
from Model.models import RequestRecordModel
|
|
|
|
|
|
|
|
@@ -30,8 +29,18 @@ class RequestRecordMiddleware(MiddlewareMixin):
|
|
|
parameter = json.dumps(request.POST.dict())
|
|
|
else:
|
|
|
parameter = ''
|
|
|
-
|
|
|
- if response.status_code == 500: # 处理没有捕获异常的情况
|
|
|
+ content = eval(str(response.content, 'utf-8')) # bytes 转为 dict
|
|
|
+ # 请求是否成功
|
|
|
+ if content['code']:
|
|
|
+ old_key = 'code'
|
|
|
+ new_key = 'result_code'
|
|
|
+ new_dict = {new_key: content.pop(old_key)}
|
|
|
+ for key, value in content.items():
|
|
|
+ new_dict[key] = value
|
|
|
+ content = new_dict.copy()
|
|
|
+ if content['result_code'] != 0:
|
|
|
+ LOGGER.info('请求路径:{}, 请求方式:{}, 输入数据:{}, 输出数据:{}, 响应状态:{}'.format(url, method, parameter, content, response.status_code))
|
|
|
+ if response.status_code == 500: # 处理没有捕获异常的情况
|
|
|
request_record_data = {
|
|
|
'method': method,
|
|
|
'url': url,
|
|
@@ -41,9 +50,9 @@ class RequestRecordMiddleware(MiddlewareMixin):
|
|
|
'reason_phrase': response.reason_phrase,
|
|
|
}
|
|
|
RequestRecordModel.objects.create(**request_record_data)
|
|
|
- elif response.content: # 处理捕获异常的情况
|
|
|
+ elif response.content: # 处理捕获异常的情况
|
|
|
# print('content: ', response.content)
|
|
|
- content = eval(str(response.content, 'utf-8')) # bytes 转为 dict
|
|
|
+ # content = eval(str(response.content, 'utf-8')) # bytes 转为 dict
|
|
|
# logger = logging.getLogger('info')
|
|
|
# logger.info('content: {}'.format(content))
|
|
|
error_flag = False
|
|
@@ -51,7 +60,7 @@ class RequestRecordMiddleware(MiddlewareMixin):
|
|
|
if 'result_code' in content and (content['result_code'] == 500 or content['result_code'] == 474):
|
|
|
reason_phrase = content['result']
|
|
|
error_flag = True
|
|
|
- elif 'code' in content and content['code'] == 500: # ResponseObject.returntype == 'pc'
|
|
|
+ elif 'code' in content and content['code'] == 500: # ResponseObject.returntype == 'pc'
|
|
|
reason_phrase = content['data']
|
|
|
error_flag = True
|
|
|
if error_flag:
|