def request(self, method, url, data = {}, files = None):
post_values = data
post_values['csrfmiddlewaretoken'] = self.csrf_token
try:
if 'sessionid' not in self.session.cookies:
self.login()
except CookieConflictError as e:
logger.warn("CookieConflictError %s. Relogging in" % e)
self.login()
sessionid = self.session.cookies['sessionid']
self.session.cookies.clear()
self.session.cookies['csrftoken'] = self.csrf_token
self.session.cookies['sessionid'] = sessionid
headers = {"X-CSRFToken": self.csrf_token, "Referer": "%s://%s" % (self.server_protocol, self.server_host)}
try:
response = self.session.request(method, url, data=post_values,
files=files, headers=headers,
timeout=self.timeout, verify=False)
except Timeout as e:
logger.warning('%s for %s timed out: %s' % (method, url, e))
raise e
#if (response.status_code == requests.codes['not_found'] or response.status_code == requests.codes['internal_server_error']):
if response.status_code == requests.codes['forbidden']:
raise LoginException("forbidden status code received on %s %s %s" % (method, response.status_code, response.text))
elif (response.status_code != requests.codes['ok']):
self.csrf_token = None
logger.error("raised exception, resetting token %s" % response.status_code)
#raise Exception("invalid status code received on %s %s %s" % (method, response.status_code, response.text))
# read content to let it know we are done with
response.content
return response
enertiv_client.py 文件源码
python
阅读 105
收藏 0
点赞 0
评论 0
评论列表
文章目录