все 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Сообщить о неточности