Что означает «Невозможно записать в закрывающий транспорт»? - PullRequest
0 голосов
/ 31 января 2019

Я получаю исключение "Cannot write to closing transport", повышенное с aiohttp.http_writer.StreamWriter#_write, но только в части случаев.

Соответствующий фрагмент.

    session: aiohttp.ClientSession
    async with session.get(url, timeout=60) as response:
        txt = await response.text()
        response.close()
        return txt

Что происходит?Я не думаю, что размер сервера закрывает сокет.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Ответ: Мы должны создавать новую сессию для каждого запроса.Также нет необходимости закрывать response() явно, так как менеджер контекста обрабатывает это.

async with aiohttp.ClientSession().get(url, timeout=60) as response:
    txt = await response.text()
    return txt
0 голосов
/ 31 января 2019

Это означает, что ваше соединение уже закрыто.Это происходит, когда клиент разрывает соединение, но сервер все еще пытается ответить ему.

Удалить response.close() из вашего кода.

...