#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