Изображение не загружается полностью с aiohttp - PullRequest
1 голос
/ 27 октября 2019

Я использую следующее для получения изображения, но оно не загружено должным образом, и видна только небольшая верхняя часть изображения. Размер файла составляет менее 256 кБ. Что не так и как я могу это исправить?

async with aiohttp.ClientSession() as session:
    async with session.get(url, timeout = 20) as response:
        if response.status == 200:
            image = await response.content.read(262144) # 256 kiB
        else:
            print("Check your URL!")
            return

1 Ответ

2 голосов
/ 27 октября 2019

В документации говорится, что read(n) читает до n байтов, но может возвращать меньше. Вам придется вызывать его в цикле, пока он не вернёт пустую строку, указывающую EOF.

Если вы не хотите реализовывать этот цикл (что полезно только в том случае, если у вас есть собственная система буферизации или потоковой передачи)), просто вызовите read() без аргумента размера, чтобы получить все данные за один раз.

...