Response handling specification which isn't derived from another response handling method, but needs to be handled directly by the backend.
Provide an implicit value of this type to serialize arbitrary classes into a request body.
Provide an implicit value of this type to serialize arbitrary classes into a request body. Backends might also provide special logic for serializer instances which they define (e.g. to handle streaming).
A synchronous backend that safely wraps SttpBackend exceptions in Either[Throwable, ?]
's
A synchronous backend that safely wraps SttpBackend exceptions in Either[Throwable, ?]
's
The type of streams that are supported by the backend. Nothing
,
if streaming requests/responses is not supported by this backend.
The type of websocket handlers, that are supported by this backend.
The handler is parametrised by the value that is being returned
when the websocket is established. NothingT
, if websockets are
not supported.
Describes a HTTP request, along with a description of how the response body should be handled.
Describes a HTTP request, along with a description of how the response body should be handled.
Specifies if the method & uri are specified. By default can be either: * Empty, which is a type constructor which always resolves to None. This type of request is aliased to PartialRequest: there's no method and uri specified, and the request cannot be sent. * Identity, which is an identity type constructor. This type of request is aliased to Request: the method and uri are specified, and the request can be sent.
The target type, to which the response body should be read.
Description of how the response body should be handled. Needs to be specified upfront so that the response is always consumed and hence there are no requirements on client code to consume it. An exception to this are streaming responses, which need to fully consumed by the client if such a response type is requested.
Request-specific tags which can be used by backends for logging, metrics, etc. Not used by default.
If redirects are followed, and there were redirects, contains responses for the intermediate requests. The first response (oldest) comes first.
Describes how response body should be handled.
Describes how response body should be handled.
Apart from the basic cases (ignoring, reading as a byte array, stream or file), response body descriptions can be mapped over, to support custom types. The mapping can take into account the ResponseMetadata, that is the headers and status code. Finally, response description can be determined dynamically depending on the response metadata.
A number of as[Type]
helper methods are available as part of SttpApi and when importing sttp.client._
.
Target type as which the response will be read.
If T is a stream, the type of the stream. Otherwise, Nothing
.
The type constructor in which responses are wrapped. E.g. Identity for synchronous backends, scala.concurrent.Future for asynchronous backends.
The type of streams that are supported by the backend. Nothing, if streaming requests/responses is not supported by this backend.
The type of websocket handlers that are supported by this backend. The handler is parametrised by the value that is being returned when the websocket is established. NothingT, if websockets are not supported.
Backends should try to classify exceptions into one of the categories specified by SttpClientException. Other exceptions should be thrown unchanged.
Known exceptions that might occur when using a backend.
Known exceptions that might occur when using a backend. Currently this covers: - connect exceptions: when a connection (tcp socket) can't be established to the target host - read exceptions: when a connection has been established, but there's any kind of problem receiving the response (e.g. a broken socket)
In general, it's safe to assume that the request hasn't been sent in case of connect exceptions. With read exceptions, the target host might or might have not received and processed the request.
The SttpBackend.send and SttpBackend.openWebsocket methods might also throw other exceptions, due to programming errors, bugs in the underlying implementations, bugs in sttp or an uncovered exception.
A synchronous backend that safely wraps SttpBackend exceptions in Try
's
A synchronous backend that safely wraps SttpBackend exceptions in Try
's
The type of streams that are supported by the backend. Nothing
,
if streaming requests/responses is not supported by this backend.
The type of websocket handlers, that are supported by this backend.
The handler is parametrised by the value that is being returned
when the websocket is established. NothingT
, if websockets are
not supported.
Use the given charset by default, unless specified otherwise in the response headers.
Use the given charset by default, unless specified otherwise in the response headers.
Use the utf-8
charset by default, unless specified otherwise in the response headers.
Use the utf-8
charset by default, unless specified otherwise in the response headers.
Use the given charset by default, unless specified otherwise in the response headers.
Use the given charset by default, unless specified otherwise in the response headers.
Use the utf-8
charset by default, unless specified otherwise in the response headers.
Use the utf-8
charset by default, unless specified otherwise in the response headers.
Use the utf-8
charset by default, unless specified otherwise in the response headers.
Use the utf-8
charset by default, unless specified otherwise in the response headers.
A starting request, with the following modification comparing to emptyRequest
: Accept-Encoding
is set to
gzip, deflate
(compression/decompression is handled automatically by the library).
A starting request, with the following modification comparing to emptyRequest
: Accept-Encoding
is set to
gzip, deflate
(compression/decompression is handled automatically by the library).
Reads the response body as an Either[String, String]
, where Left
is used if the status code is non-2xx,
and Right
otherwise.
An empty request with no headers.
An empty request with no headers.
Reads the response body as an Either[String, String]
, where Left
is used if the status code is non-2xx,
and Right
otherwise.
Content type will be set to application/octet-stream
, can be
overridden later using the contentType
method.
Content type will be set to application/octet-stream
, can be
overridden later using the contentType
method.
Encodes the given parameters as form data.
Encodes the given parameters as form data.
Content type will be set to application/x-www-form-urlencoded
, can be
overridden later using the contentType
method.
Encodes the given parameters as form data using utf-8
.
Encodes the given parameters as form data using utf-8
.
Content type will be set to application/x-www-form-urlencoded
, can be
overridden later using the contentType
method.
Encodes the given parameters as form data.
Encodes the given parameters as form data.
Content type will be set to application/x-www-form-urlencoded
, can be
overridden later using the contentType
method.
Encodes the given parameters as form data using utf-8
.
Encodes the given parameters as form data using utf-8
.
Content type will be set to application/x-www-form-urlencoded
, can be
overridden later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
Content type will be set to text/plain
with utf-8
encoding, can be
overridden later using the contentType
method.
Content type will be set to text/plain
with utf-8
encoding, can be
overridden later using the contentType
method.
Content type will be set to text/plain
with utf-8
encoding, can be
overridden later using the contentType
method.
Content type will be set to text/plain
with utf-8
encoding, can be
overridden later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
File name will be set to the name of the file.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
Content type will be set to application/octet-stream
, can be overridden
later using the contentType
method.
File name will be set to the name of the file.
A starting request which always reads the response body as a string, regardless of the status code.
A starting request which always reads the response body as a string, regardless of the status code.