# import json import logging import os import requests from requests.cookies import RequestsCookieJar # from functools import wraps # from rest_framework.request import Request from rest_framework.response import Response from config.config import USER_INFO_URL logger = logging.getLogger(__name__) def transfer_cookie(cookies): """ 将cookie加入cookie_jar对象 :param cookies: dict :return: cookie_jar """ cookie_jar = RequestsCookieJar() for key, value in cookies.items(): cookie_jar.set(key, value) return cookie_jar def get_account_info(req): """ 获取用户的账户信息 :param req: :return: """ if not (os.environ.get('DEBUG', False) == "True"): # logger.info('req中的data为: ' + json.dumps(req.COOKIES)) cookie_jar = transfer_cookie(req.COOKIES) info = requests.get(USER_INFO_URL, cookies=cookie_jar) # logger.info('req中的query_params为: ', req.query_params) try: if info.json()['code'] != 200: logger.info('未能获取用户信息: ' + info.text) return Response({'code': -1, 'msg': '未能获取用户信息'}) except RuntimeError: logger.exception('未能获取用户信息: ' + info.text) return Response({'code': -1, 'msg': '未能获取用户信息'}) req.data['username'] = info.json()['data']['userInfo']['name'] return req return req # get_account_info()