Найти - Пользователи
Полная версия: Requests: не применяются параметры авторизации
Начало » Python для новичков » Requests: не применяются параметры авторизации
1
_alexs_
Использую библиотеку Requests для взамодействия с сервисом. Для удобства работы сделал класс-обертку, упрощенный код ниже
class MyWrapper:
    def __init__(self, url):
        self.url = url
        self.session = requests.Session()
   
    def setAuth(self, user, passwd):
        self.session.auth = (user, passwd)
    def doSomething(self, url, param):
        self._qry(url, 'POST', param)
    
    def _qry(self, url, method, params):
        req = requests.Request(method, url, params)
        prep = req.prepare()
        resp = self.session.send(prep)

Проблема в том, что установленные свойства у self.session (например, self.session.auth) не используются при посылке запросов в методе _qry(). Но если при создании запроса явно указать параметры авторизации
 req = requests.Request(method, url, params, auth=self.session.auth)

то все работает. В чем может быть проблема, почему не подхватывается авторизация, заданная на уровне сессии?
FishHook
def doSomething(url, param):

А self где?
_alexs_
FishHook
def doSomething(url, param):А self где?
Пропустил при наборе поста, бывает. Начальное сообщение поправил
bs0d
_alexs_
В чем может быть проблема, почему не подхватывается авторизация, заданная на уровне сессии?
А Вы self.setAuth вызываете перед отправкой запроса? о_О
И сделайте так:
prep = req.prepare()
меняем на:
prep = self.session.prepare_request(req)
_alexs_
bs0d
А Вы self.setAuth вызываете перед отправкой запроса? о_О
Конечно.
bs0d
И сделайте так:
prep = req.prepare()
меняем на:
prep = self.session.prepare_request(req)
Спасибо, так работает.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB