Итак, у меня есть команда, которая отправляет все, что пользователь сказал после команды, на веб-сайт API и отправляет файл, который генерирует сайт. Однако я перехожу на aiohttp, так как он не блокируется, как функции запрошенных запросов
Вот как я делаю это с обычными запросами, и он отлично работает:
elif (data[0].lower() == ">signgirl"):
await bot.send_typing(message.channel)
tmp = message.content.replace(">signgirl", "")
m = hashlib.md5()
m.update(tmp.encode('utf-8'))
print(tmp, m.hexdigest())
r = requests.post("http://localhost/sign.php", stream=True, data={'text': tmp})
if (r.status_code() == 200):
await bot.send_file(destination=message.channel, filename=str(m.hexdigest()+".png"), fp=r.raw)
Однако, когда я пытаюсь использовать aiohttp, я понятия не имею, как на самом деле получить необработанные данные файла ..
Так что я сделал эту функцию, чтобы получить ее. но это не позволяет мне вернуть изображение, и я не могу проверить код состояния http, если он не вызывает ошибку.
async def post_data2(url, payload):
async with aiohttp.ClientSession() as session2:
async with session2.post(url, data=payload) as response2:
output = {}
output['data'] = await Image.open(BytesIO(response2.read()))
output['status'] = 200 #await str(response2.status()) #Why is this object not callable?
return output
Как еще я могу это сделать? Это возможно? Aiohttp не так легко понять.