sttp.client3
Type members
Classlikes
A base class for delegate backends, which includes delegating implementations for close
and responseMonad
,
so that only send
needs to be defined.
A base class for delegate backends, which includes delegating implementations for close
and responseMonad
,
so that only send
needs to be defined.
- Companion
- object
A synchronous backend that safely wraps SttpBackend exceptions in Either[Throwable, *]
's
A synchronous backend that safely wraps SttpBackend exceptions in Either[Throwable, *]
's
- Type Params
- P
TODO
- Value Params
- delegate
A synchronous
SttpBackend
which to which this backend forwards all requests
- Companion
- object
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.
The request can be sent using a SttpBackend, which provides a superset of the required capabilities.
- Type Params
- R
The backend capabilities required by the request or response description. This might be
Any
(no requirements), Effect (the backend must support the given effect type), Streams (the ability to send and receive streaming bodies) or sttp.capabilities.WebSockets (the ability to handle websocket requests).- T
The target type, to which the response body should be read.
- U
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.
- Value Params
- response
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 unsafe streaming and websocket responses, which need to be consumed/closed by the client.
- tags
Request-specific tags which can be used by backends for logging, metrics, etc. Not used by default.
- Companion
- object
- Companion
- object
- Value Params
- history
If redirects are followed, and there were redirects, contains responses for the intermediate requests. The first response (oldest) comes first.
- Companion
- object
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 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. Responses can also be handled depending on the response metadata. Finally, two response body descriptions can be combined (with some restrictions).
A number of as[Type]
helper methods are available as part of SttpApi and when importing sttp.client3._
.
- Type Params
- R
The backend capabilities required by the response description. This might be
Any
(no requirements), Effect (the backend must support the given effect type), Streams (the ability to send and receive streaming bodies) or WebSockets (the ability to handle websocket requests).- T
Target type as which the response will be read.
- Companion
- object
A backend is used to send HTTP requests described by RequestT. Backends might wrap Java or Scala HTTP clients, or other backends.
A backend is used to send HTTP requests described by RequestT. Backends might wrap Java or Scala HTTP clients, or other backends.
- Type Params
- F
The effect type used when returning responses. E.g. Identity for synchronous backends, scala.concurrent.Future for asynchronous backends.
- P
Capabilities supported by this backend, in addition to Effect. This might be
Any
(no special capabilities), Streams (the ability to send and receive streaming bodies) or WebSockets (the ability to handle websocket requests).
- Note
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. Currently this covers:
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 or handling the response (e.g. a broken socket or a deserialization error)
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 methods might also throw other exceptions, due to programming errors, bugs in the underlying implementations, bugs in sttp or an uncovered exception.
- Value Params
- cause
The original exception.
- request
The request, which was being sent when the exception was thrown
- Companion
- object
A synchronous backend that safely wraps SttpBackend exceptions in Try
's
A synchronous backend that safely wraps SttpBackend exceptions in Try
's
- Type Params
- P
TODO
- Value Params
- delegate
A synchronous
SttpBackend
which to which this backend forwards all requests
Inherited classlikes
Types
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).
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).
Value members
Inherited methods
Use both l
and r
to read the response body. Neither response specifications may use streaming or web sockets.
Use both l
and r
to read the response body. Neither response specifications may use streaming or web sockets.
- Inherited from
- SttpApi
Use l
to read the response body. If the raw body value which is used by l
is replayable (a file or byte
array), also use r
to read the response body. Otherwise ignore r
(if the raw body is a stream or
a web socket).
Use l
to read the response body. If the raw body value which is used by l
is replayable (a file or byte
array), also use r
to read the response body. Otherwise ignore r
(if the raw body is a stream or
a web socket).
- Inherited from
- SttpApi
Uses the onSuccess
response specification for successful responses (2xx), and the onError
specification otherwise.
Uses the onSuccess
response specification for successful responses (2xx), and the onError
specification otherwise.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
- Inherited from
- SttpApi
- Inherited from
- SttpApi
- Inherited from
- SttpApi
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
- Inherited from
- SttpApi
- Inherited from
- SttpApi
Uses the onSuccess
response specification for 101 responses (switching protocols), and the onError
specification otherwise.
Uses the onSuccess
response specification for 101 responses (switching protocols), and the onError
specification otherwise.
- Inherited from
- SttpApi
- Inherited from
- SttpApi
- Inherited from
- SttpApi
- Inherited from
- SttpApi
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
Content type will be set to text/plain
with given encoding, can be
overridden later using the contentType
method.
Content type will be set to text/plain
with given encoding, can be
overridden later using the contentType
method.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpExtensions
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.
- Inherited from
- SttpExtensions
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.
- Inherited from
- SttpApi
Inherited fields
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi
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.
- Inherited from
- SttpApi