enertiv_client.py 文件源码

python
阅读 105 收藏 0 点赞 0 评论 0

项目:itp-energy-forecast-with-enertiv 作者: 821760408-sp 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号