сеанс клиента aiohttp не остается в системе

#python #python-requests #python-asyncio #aiohttp

Вопрос:

Я использую aiohttp с ClientSession для создания запросов на вход в систему, а затем приступаю к выполнению других запросов, требующих входа в систему.

После некоторого времени копания и осмотров кажется, что мой сеанс выполняет запросы, как будто он не вошел в систему. Я действительно уверен, что вошел в систему, так как файлы cookie сеанса различаются при входе в систему и без входа в систему.

Это также один из моих первых случаев, когда я одновременно использую классы asyncio, aiohttp и Python, потому что раньше я просто вызывал функции в задачах и входил в систему таким образом, и тогда клиентская сессия выполняла необходимые запросы нормально.

Вот как выглядит мой класс и как я создаю клиентскую сессию. Функция запуска запускает весь процесс класса, который заключается в входе в систему и после этого выполнении запросов, требующих входа пользователя в систему.

 class Task:
    def __init__(self, index, email, password):
        self.index = index
        self.email = email
        self.password = password
        self.session = aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False))

    async def start(self):
        await self.get_login_page()
        await self.get_profile_page()
        await self.session.close()
 

Вот как я начинаю выполнять задачи с помощью asyncio:

  loop = asyncio.get_event_loop()
 task_object = Task(index, task_email, task_password)
 loop.create_task(task_object.start())
 loop.run_forever()
 
 

Поэтому прямо сейчас я сужаю круг вопросов до того, как я написал код, который влияет на поведение сеанса клиента, но я просто не уверен.

Ответ №1:

Исправлено, мой код был в порядке. aiohttp просто неправильно обрабатывает перенаправления, поэтому я переключился на другой http-клиент.

Комментарии:

1. Пожалуйста, добавьте дополнительные сведения, чтобы расширить свой ответ, например, ссылки на рабочий код или документацию.

2. я использую httpx rn