Python Glossary English

все Python 3http.clientисключение

http.client.UnknownTransferEncoding

исключения

Исключение для неизвестного Transfer-Encoding. Объявлено ради совместимости: современный http.client его не бросает. Потомок HTTPException.

Синтаксис

except http.client.UnknownTransferEncoding: ...

Ловить его бессмысленно: если сервер прислал, например, Transfer-Encoding: gzip, модуль не падает, а считает тело не разбитым на куски и читает его как есть — до Content-Length или закрытия соединения. Распаковка gzip — ваша забота (модуль gzip или zlib). Класс остался в модуле, чтобы старый код с except UnknownTransferEncoding не ломался на импорте.

Примеры

import http.client
import socket
server, client = socket.socketpair()
server.sendall(b'HTTP/1.1 200 OK\r\nTransfer-Encoding: gzip\r\n\r\nraw')
server.close()
resp = http.client.HTTPResponse(client)
resp.begin()  # никакого UnknownTransferEncoding
print(resp.read())  # → b'raw' — тело как есть, до закрытия соединения
print(issubclass(http.client.UnknownTransferEncoding, http.client.HTTPException))  # → True
client.close()

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности