def handle_response(self, response, response_key=None):
"""Handler for response object
:param response: requests.response obj
:param response_key: key for dict in response obj
:return object, result for response, python obj
"""
status_code = response.status_code
try:
result = response.json()
except Exception as e:
self.logger.exception(e)
raise ResponseError(response, e)
if result:
if response_key is not None and status_code in self.ok_statuses:
if response_key in result:
result = result[response_key]
else:
raise ResponseError(response, 'Response key not found!')
elif response_key is not None and status_code in self.to_none_statuses:
result = None
elif status_code not in self.ok_statuses and status_code not in self.to_none_statuses:
raise ResponseError(response,
'Status code {} not in ok_statuses {}'.format(
status_code, self.ok_statuses))
if response_key is not None and self.empty_to_none and result is not None and not result:
result = None
return result
评论列表
文章目录