获取三方token优化
This commit is contained in:
parent
e24c632593
commit
e84f012e09
|
@ -36,7 +36,7 @@ class DhClient:
|
||||||
self.headers = {"Connection": "close"}
|
self.headers = {"Connection": "close"}
|
||||||
self.isGetingToken = False
|
self.isGetingToken = False
|
||||||
self.log = {}
|
self.log = {}
|
||||||
self._get_token()
|
# self._get_token()
|
||||||
|
|
||||||
def _get_token(self):
|
def _get_token(self):
|
||||||
self.isGetingToken = True
|
self.isGetingToken = True
|
||||||
|
@ -45,7 +45,7 @@ class DhClient:
|
||||||
'client_id': self.client_id,
|
'client_id': self.client_id,
|
||||||
'client_secret': self.client_secret
|
'client_secret': self.client_secret
|
||||||
}
|
}
|
||||||
is_ok, res = self.request(**dhapis['token_login'], params=params, raise_exception=False)
|
is_ok, res = self.request(**dhapis['token_login'], params=params, raise_exception=False, timeout=2)
|
||||||
if is_ok == 'success':
|
if is_ok == 'success':
|
||||||
cache.set('dh_token', res['access_token'], timeout=None)
|
cache.set('dh_token', res['access_token'], timeout=None)
|
||||||
self.isGetingToken = False
|
self.isGetingToken = False
|
||||||
|
@ -64,29 +64,31 @@ class DhClient:
|
||||||
if params:
|
if params:
|
||||||
url = url.format(**params)
|
url = url.format(**params)
|
||||||
self.log.update({"path": url})
|
self.log.update({"path": url})
|
||||||
r = getattr(requests, method)('{}{}'.format(settings.DAHUA_BASE_URL, url),
|
try:
|
||||||
headers=self.headers, params=params, json=json,
|
r = getattr(requests, method)('{}{}'.format(settings.DAHUA_BASE_URL, url),
|
||||||
timeout=timeout, files=files, verify=False)
|
headers=self.headers, params=params, json=json,
|
||||||
# if settings.DEBUG:
|
timeout=timeout, files=files, verify=False)
|
||||||
# print_roundtrip(r)
|
# if settings.DEBUG:
|
||||||
ret = r.text
|
# print_roundtrip(r)
|
||||||
if 300 > r.status_code >= 200:
|
ret = r.text
|
||||||
ret = r.json()
|
if 300 > r.status_code >= 200:
|
||||||
if ret['code'] not in ['0', '100', '00000', '1000', 0, 100, 1000]:
|
ret = r.json()
|
||||||
detail = '大华错误:' + \
|
if ret['code'] not in ['0', '100', '00000', '1000', 0, 100, 1000]:
|
||||||
'{}|{}{}{}'.format(str(ret['code']), ret.get('errMsg', ''),
|
detail = '大华错误:' + \
|
||||||
ret.get('desc', ''), str(ret.get('data', '')))
|
'{}|{}{}{}'.format(str(ret['code']), ret.get('errMsg', ''),
|
||||||
err_detail = dict(detail=detail, code='dh_'+str(ret['code']))
|
ret.get('desc', ''), str(ret.get('data', '')))
|
||||||
self.handle_log(result='fail', response=ret)
|
err_detail = dict(detail=detail, code='dh_'+str(ret['code']))
|
||||||
if raise_exception:
|
self.handle_log(result='fail', response=ret)
|
||||||
raise ParseError(**err_detail)
|
if raise_exception:
|
||||||
return 'fail', err_detail
|
raise ParseError(**err_detail)
|
||||||
# self.handle_log(result='success', response=ret) # 成功的日志就不记录了
|
return 'fail', err_detail
|
||||||
return 'success', ret['data'] if 'data' in ret else None
|
# self.handle_log(result='success', response=ret) # 成功的日志就不记录了
|
||||||
self.handle_log(result='error', response=ret)
|
return 'success', ret['data'] if 'data' in ret else None
|
||||||
if raise_exception:
|
except Exception:
|
||||||
raise APIException(**DH_REQUEST_ERROR)
|
self.handle_log(result='error', response=None)
|
||||||
return 'error', DH_REQUEST_ERROR
|
if raise_exception:
|
||||||
|
raise APIException(**DH_REQUEST_ERROR)
|
||||||
|
return 'error', DH_REQUEST_ERROR
|
||||||
|
|
||||||
def _get_response_ms(self):
|
def _get_response_ms(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -31,14 +31,14 @@ class XxClient:
|
||||||
self.isGetingToken = False
|
self.isGetingToken = False
|
||||||
self.headers = {"Connection": "close"}
|
self.headers = {"Connection": "close"}
|
||||||
self.log = {}
|
self.log = {}
|
||||||
self._get_token()
|
# self._get_token()
|
||||||
|
|
||||||
def _get_token(self):
|
def _get_token(self):
|
||||||
self.isGetingToken = True
|
self.isGetingToken = True
|
||||||
json = {
|
json = {
|
||||||
'licence': self.licence
|
'licence': self.licence
|
||||||
}
|
}
|
||||||
is_ok, res = self.request(**xxapis['token_login'], json=json, raise_exception=False)
|
is_ok, res = self.request(**xxapis['token_login'], json=json, raise_exception=False, timeout=2)
|
||||||
if is_ok == 'success':
|
if is_ok == 'success':
|
||||||
cache.set('xx_token', res['token'], timeout=None)
|
cache.set('xx_token', res['token'], timeout=None)
|
||||||
self.isGetingToken = False
|
self.isGetingToken = False
|
||||||
|
@ -52,29 +52,31 @@ class XxClient:
|
||||||
json['licence'] = settings.XX_LICENCE
|
json['licence'] = settings.XX_LICENCE
|
||||||
self.log = {"requested_at": now(), "id": uuid.uuid4(), "path": url, "method": method,
|
self.log = {"requested_at": now(), "id": uuid.uuid4(), "path": url, "method": method,
|
||||||
"params": params, "body": json, "target": "xunxi", "result": 10, "headers": self.headers}
|
"params": params, "body": json, "target": "xunxi", "result": 10, "headers": self.headers}
|
||||||
r = getattr(requests, method)('{}{}'.format(settings.XX_BASE_URL, url),
|
try:
|
||||||
headers=self.headers, params=params, json=json, timeout=timeout, verify=False)
|
r = getattr(requests, method)('{}{}'.format(settings.XX_BASE_URL, url),
|
||||||
# if settings.DEBUG:
|
headers=self.headers, params=params, json=json, timeout=timeout, verify=False)
|
||||||
# print_roundtrip(r)
|
# if settings.DEBUG:
|
||||||
ret = r.text
|
# print_roundtrip(r)
|
||||||
if 300 > r.status_code >= 200:
|
ret = r.text
|
||||||
ret = r.json()
|
if 300 > r.status_code >= 200:
|
||||||
if ret['errorCode'] != 0:
|
ret = r.json()
|
||||||
# if ret.get('errorCode') in ['1060000', 1060000]:
|
if ret['errorCode'] != 0:
|
||||||
# self._get_token() # 重新获取token
|
# if ret.get('errorCode') in ['1060000', 1060000]:
|
||||||
# self.request(url, method, params, json, timeout, raise_exception) # 重新请求
|
# self._get_token() # 重新获取token
|
||||||
# return
|
# self.request(url, method, params, json, timeout, raise_exception) # 重新请求
|
||||||
err_detail = dict(detail='寻息错误:' + '|'.join(ret['errorMsg']),
|
# return
|
||||||
code='xx_' + str(ret['errorCode']))
|
err_detail = dict(detail='寻息错误:' + '|'.join(ret['errorMsg']),
|
||||||
self.handle_log(result='fail', response=ret)
|
code='xx_' + str(ret['errorCode']))
|
||||||
if raise_exception:
|
self.handle_log(result='fail', response=ret)
|
||||||
raise ParseError(**err_detail)
|
if raise_exception:
|
||||||
return 'fail', err_detail
|
raise ParseError(**err_detail)
|
||||||
return 'success', ret['data']
|
return 'fail', err_detail
|
||||||
self.handle_log(result='error', response=ret)
|
return 'success', ret['data']
|
||||||
if raise_exception:
|
except Exception:
|
||||||
raise APIException(**XX_REQUEST_ERROR)
|
self.handle_log(result='error', response=None)
|
||||||
return 'error', XX_REQUEST_ERROR
|
if raise_exception:
|
||||||
|
raise APIException(**XX_REQUEST_ERROR)
|
||||||
|
return 'error', XX_REQUEST_ERROR
|
||||||
|
|
||||||
def _get_response_ms(self):
|
def _get_response_ms(self):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue