все Python 3http.clientисключение
http.client.BadStatusLine
исключения
Первая строка ответа не похожа на строку статуса HTTP, например сервер прислал не HTTP или мусор. Потомок HTTPException.
Синтаксис
except http.client.BadStatusLine as e: e.line
Частые причины: обращение по http:// к порту, где ждут TLS, или к не-HTTP сервису (база данных, SSH). Текст исключения — сама строка в repr, по ней видно, что пришло. До 3.5 пустой ответ давал BadStatusLine(''), теперь это RemoteDisconnected — её потомок, так что старый except BadStatusLine продолжает ловить и этот случай.
Примеры
import http.client
import socket
server, client = socket.socketpair()
server.sendall(b'SSH-2.0-OpenSSH_9.6\r\n')
server.close()
resp = http.client.HTTPResponse(client)
try:
resp.begin()
except http.client.BadStatusLine as e:
print(repr(e.line)) # → 'SSH-2.0-OpenSSH_9.6\r\n'
client.close()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности