123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # -*- coding: utf-8 -*-
- """
- @Time : 2021/9/22 17:08
- @Auth : Locky
- @File :requestRecord.py
- @IDE :PyCharm
- """
- import json
- import time
- from django.utils.deprecation import MiddlewareMixin
- from AnsjerPush.config import LOGGER
- class RequestRecordMiddleware(MiddlewareMixin):
- def process_request(self, request):
- request.start_time = time.time()
- def process_response(self, request, response):
- try:
- method = request.method
- url = request.path
- # 获取请求参数并转为字符串
- if method == 'GET':
- parameter = json.dumps(request.GET.dict())
- elif method == 'POST':
- parameter = json.dumps(request.POST.dict())
- else:
- parameter = ''
- 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))
- finally:
- return response
|