Enum isahc::error::ErrorKind

source ·
#[non_exhaustive]
pub enum ErrorKind {
Show 14 variants BadClientCertificate, BadServerCertificate, ClientInitialization, ConnectionFailed, InvalidContentEncoding, InvalidCredentials, InvalidRequest, Io, NameResolution, ProtocolViolation, RequestBodyNotRewindable, Timeout, TlsEngine, TooManyRedirects, // some variants omitted
}
Expand description

A non-exhaustive list of error types that can occur while sending an HTTP request or receiving an HTTP response.

These are meant to be treated as general error codes that allow you to handle different sorts of errors in different ways, but are not always specific. The list is also non-exhaustive, and more variants may be added in the future.

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

BadClientCertificate

A problem occurred with the local certificate.

BadServerCertificate

The server certificate could not be validated.

ClientInitialization

The HTTP client failed to initialize.

This error can occur when trying to create a client with invalid configuration, if there were insufficient resources to create the client, or if a system error occurred when trying to initialize an I/O driver.

ConnectionFailed

Failed to connect to the server. This can occur if the server rejects the request on the specified port.

InvalidContentEncoding

The server either returned a response using an unknown or unsupported encoding format, or the response encoding was malformed.

InvalidCredentials

Provided authentication credentials were rejected by the server.

This error is only returned when using Isahc’s built-in authentication methods. If using authentication headers manually, the server’s response will be returned as a success unaltered.

InvalidRequest

The request to be sent was invalid and could not be sent.

Note that this is only returned for requests that the client deemed invalid. If the request appears to be valid but is rejected by the server, then the server’s response will likely indicate as such.

Io

An I/O error either sending the request or reading the response. This could be caused by a problem on the client machine, a problem on the server machine, or a problem with the network between the two.

You can get more details about the underlying I/O error with Error::source.

NameResolution

Failed to resolve a host name.

This could be caused by any number of problems, including failure to reach a DNS server, misconfigured resolver configuration, or the hostname simply does not exist.

ProtocolViolation

The server made an unrecoverable HTTP protocol violation. This indicates a bug in the server. Retrying a request that returns this error is likely to produce the same error.

RequestBodyNotRewindable

Request processing could not continue because the client needed to re-send the request body, but was unable to rewind the body stream to the beginning in order to do so.

If you need Isahc to be able to re-send the request body during a retry or redirect then you must load the body into a contiguous memory buffer first. Then you can create a rewindable body using Body::from_bytes_static or AsyncBody::from_bytes_static.

Timeout

A request or operation took longer than the configured timeout time.

TlsEngine

An error ocurred in the secure socket engine.

TooManyRedirects

Number of redirects hit the maximum configured amount.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more