Exceptions
This page lists exceptions that may be raised when using HTTPX.
For an overview of how to work with HTTPX exceptions, see Exceptions (Quickstart).
The exception hierarchy
- HTTPError
- RequestError
- TransportError
- TimeoutException
- ConnectTimeout
- ReadTimeout
- WriteTimeout
- PoolTimeout
- NetworkError
- ConnectError
- ReadError
- WriteError
- CloseError
- ProtocolError
- LocalProtocolError
- RemoteProtocolError
- ProxyError
- UnsupportedProtocol
- TimeoutException
- DecodingError
- TooManyRedirects
- TransportError
- HTTPStatusError
- RequestError
- InvalidURL
- CookieConflict
- StreamError
- StreamConsumed
- ResponseNotRead
- RequestNotRead
- StreamClosed
Exception classes
httpx.HTTPError
(message)Base class for RequestError
and HTTPStatusError
.
Useful for try...except
blocks when issuing a request,
and then calling .raise_for_status()
.
For example:
try:
response = httpx.get("http://www.example.com")
response.raise_for_status()
except httpx.HTTPError as exc:
print(f"HTTP Exception for {exc.request.url} - {exc}")
httpx.RequestError
(message, *, request=None)Base class for all exceptions that may occur when issuing a .request()
.
httpx.TransportError
(message, *, request=None)Base class for all exceptions that occur at the level of the Transport API.
httpx.TimeoutException
(message, *, request=None)The base class for timeout errors.
An operation has timed out.
httpx.ConnectTimeout
(message, *, request=None)Timed out while connecting to the host.
httpx.ReadTimeout
(message, *, request=None)Timed out while receiving data from the host.
httpx.WriteTimeout
(message, *, request=None)Timed out while sending data to the host.
httpx.PoolTimeout
(message, *, request=None)Timed out waiting to acquire a connection from the pool.
httpx.NetworkError
(message, *, request=None)The base class for network-related errors.
An error occurred while interacting with the network.
httpx.ConnectError
(message, *, request=None)Failed to establish a connection.
httpx.ReadError
(message, *, request=None)Failed to receive data from the network.
httpx.WriteError
(message, *, request=None)Failed to send data through the network.
httpx.CloseError
(message, *, request=None)Failed to close a connection.
httpx.ProtocolError
(message, *, request=None)The protocol was violated.
httpx.LocalProtocolError
(message, *, request=None)A protocol was violated by the client.
For example if the user instantiated a Request
instance explicitly,
failed to include the mandatory Host:
header, and then issued it directly
using client.send()
.
httpx.RemoteProtocolError
(message, *, request=None)The protocol was violated by the server.
For example, returning malformed HTTP.
httpx.ProxyError
(message, *, request=None)An error occurred while establishing a proxy connection.
httpx.UnsupportedProtocol
(message, *, request=None)Attempted to make a request to an unsupported protocol.
For example issuing a request to ftp://www.example.com
.
httpx.DecodingError
(message, *, request=None)Decoding of the response failed, due to a malformed encoding.
httpx.TooManyRedirects
(message, *, request=None)Too many redirects.
httpx.HTTPStatusError
(message, *, request, response)The response had an error HTTP status of 4xx or 5xx.
May be raised when calling response.raise_for_status()
httpx.InvalidURL
(message)URL is improperly formed or cannot be parsed.
httpx.CookieConflict
(message)Attempted to lookup a cookie by name, but multiple cookies existed.
Can occur when calling response.cookies.get(...)
.
httpx.StreamError
(message)The base class for stream exceptions.
The developer made an error in accessing the request stream in an invalid way.
httpx.StreamConsumed
()Attempted to read or stream content, but the content has already been streamed.
httpx.StreamClosed
()Attempted to read or stream response content, but the request has been closed.
httpx.ResponseNotRead
()Attempted to access streaming response content, without having called read()
.
httpx.RequestNotRead
()Attempted to access streaming request content, without having called read()
.