request.session()对象在另一个类中无法识别

时间:2018-08-13 12:17:54

标签: python python-3.x session python-requests

我正在尝试将会话对象从一个类传递到另一个类。但是我不确定发生了什么。

    class CreateSession:
      def __init__(self, user, pwd, url="http://url_to_hit"):
        self.url = url
        self.user = user
        self.pwd = pwd

      def get_session(self):
        sess = requests.Session()
        r = sess.get(self.url + "/", auth=(self.user, self.pwd))
        print(r.content)
        return sess


    class TestGet(CreateSession):
      def get_response(self):
        s = self.get_session()
        print(s)
        data = s.get(self.url + '/some-get')
        print(data.status_code)
        print(data)

    if __name__ == "__main__":
      TestGet(user='user', pwd='pwd').get_response()

我在get_response()中得到401。无法理解这一点。

1 个答案:

答案 0 :(得分:0)

什么是401?

您收到的回复表示您未经授权访问资源。


使用会话是为了在请求中保留标头和其他先决条件,为什么您每次都创建会话而不是将其存储在变量中?

按原样,该会话应该正常工作,唯一的问题是您正试图调用您无权访问的资源。 -您在初始化时都没有传递HttpResponse参数。


如何有效使用POST的示例:

def myView(request,pk):
    if request.method == 'POST':
        print("DONE")
        return HttpResponse(content='<script>console.log("SOMETHING IS HAPPENING!");</script>', content_type='text/javascript; charset=utf-8')
    else:
        print('WRONG REQUEST')
        return HttpResponse("WRONG REQUEST")