Package

sttp

client

Permalink

package client

Linear Supertypes
SttpApi, UriInterpolator, SttpExtensions, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. client
  2. SttpApi
  3. UriInterpolator
  4. SttpExtensions
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract class AbstractFetchBackend[F[_], S <: Streams[S], P] extends SttpBackend[F, P]

    Permalink

    A backend that uses the fetch JavaScript api.

    A backend that uses the fetch JavaScript api.

    See also

    https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

  2. sealed trait BasicRequestBody extends RequestBody[Any]

    Permalink
  3. type BodySerializer[B] = (B) ⇒ BasicRequestBody

    Permalink

    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).

  4. case class ByteArrayBody(b: Array[Byte], defaultContentType: MediaType = MediaType.ApplicationOctetStream) extends BasicRequestBody with Product with Serializable

    Permalink
  5. case class ByteBufferBody(b: ByteBuffer, defaultContentType: MediaType = MediaType.ApplicationOctetStream) extends BasicRequestBody with Product with Serializable

    Permalink
  6. case class ConditionalResponseAs[+T, R](condition: (ResponseMetadata) ⇒ Boolean, responseAs: ResponseAs[T, R]) extends Product with Serializable

    Permalink
  7. case class DeserializationException[DE](body: String, error: DE)(implicit evidence$5: ShowError[DE]) extends ResponseException[Nothing, DE] with Product with Serializable

    Permalink
  8. class DigestAuthenticationBackend[F[_], P] extends SttpBackend[F, P]

    Permalink
  9. class EitherBackend[P] extends SttpBackend[[β$0$]Either[Throwable, β$0$], P]

    Permalink

    A synchronous backend that safely wraps SttpBackend exceptions in Either[Throwable, *]'s

    A synchronous backend that safely wraps SttpBackend exceptions in Either[Throwable, *]'s

    P

    TODO

  10. type Empty[X] = None.type

    Permalink
  11. class FetchBackend extends AbstractFetchBackend[Future, Nothing, Any]

    Permalink
  12. final case class FetchOptions(credentials: Option[RequestCredentials], mode: Option[RequestMode]) extends Product with Serializable

    Permalink
  13. case class FileBody(f: SttpFile, defaultContentType: MediaType = MediaType.ApplicationOctetStream) extends BasicRequestBody with Product with Serializable

    Permalink
  14. class FollowRedirectsBackend[F[_], P] extends SttpBackend[F, P]

    Permalink
  15. case class HttpError[HE](body: HE, statusCode: StatusCode) extends ResponseException[HE, Nothing] with Product with Serializable

    Permalink
  16. type Identity[X] = X

    Permalink
  17. case class InputStreamBody(b: InputStream, defaultContentType: MediaType = MediaType.ApplicationOctetStream) extends BasicRequestBody with Product with Serializable

    Permalink
  18. case class MappedResponseAs[T, T2, R](raw: ResponseAs[T, R], g: (T, ResponseMetadata) ⇒ T2, showAs: Option[String]) extends ResponseAs[T2, R] with Product with Serializable

    Permalink
  19. case class MultipartBody[R](parts: Seq[Part[RequestBody[R]]]) extends RequestBody[R] with Product with Serializable

    Permalink
  20. type PartialRequest[T, -R] = RequestT[Empty, T, R]

    Permalink

    A RequestT without the method & uri specified (which cannot yet be sent).

  21. type Request[T, -R] = RequestT[Identity, T, R]

    Permalink

    A RequestT with the method & uri specified.

    A RequestT with the method & uri specified. Such a request can be sent.

  22. sealed trait RequestBody[-R] extends AnyRef

    Permalink
  23. trait RequestMetadata extends HasHeaders

    Permalink
  24. case class RequestOptions(followRedirects: Boolean, readTimeout: Duration, maxRedirects: Int, redirectToGet: Boolean) extends Product with Serializable

    Permalink
  25. case class RequestT[U[_], T, -R](method: U[Method], uri: U[Uri], body: RequestBody[R], headers: Seq[Header], response: ResponseAs[T, R], options: RequestOptions, tags: Map[String, Any]) extends HasHeaders with RequestTExtensions[U, T, R] with Product with Serializable

    Permalink

    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.

    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.

    T

    The target type, to which the response body should be read.

    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).

    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.

  26. trait RequestTExtensions[U[_], T, -R] extends AnyRef

    Permalink
  27. case class Response[T](body: T, code: StatusCode, statusText: String, headers: Seq[Header], history: List[Response[Unit]], request: RequestMetadata) extends ResponseMetadata with Product with Serializable

    Permalink

    history

    If redirects are followed, and there were redirects, contains responses for the intermediate requests. The first response (oldest) comes first.

  28. sealed trait ResponseAs[+T, -R] extends AnyRef

    Permalink

    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.client._.

    T

    Target type as which the response will be read.

    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).

  29. case class ResponseAsBoth[A, B, R](l: ResponseAs[A, R], r: ResponseAs[B, Any]) extends ResponseAs[(A, Option[B]), R] with Product with Serializable

    Permalink
  30. case class ResponseAsFile(output: SttpFile) extends ResponseAs[SttpFile, Any] with Product with Serializable

    Permalink
  31. case class ResponseAsFromMetadata[T, R](conditions: List[ConditionalResponseAs[T, R]], default: ResponseAs[T, R]) extends ResponseAs[T, R] with Product with Serializable

    Permalink
  32. case class ResponseAsStream[F[_], T, Stream, S] extends ResponseAs[T, Effect[F] with S] with Product with Serializable

    Permalink
  33. case class ResponseAsStreamUnsafe[BinaryStream, S] extends ResponseAs[BinaryStream, S] with Product with Serializable

    Permalink
  34. case class ResponseAsWebSocket[F[_], T](f: (WebSocket[F]) ⇒ F[T]) extends WebSocketResponseAs[T, Effect[F] with WebSockets] with Product with Serializable

    Permalink
  35. case class ResponseAsWebSocketStream[S, Pipe[_, _]](s: Streams[S], p: Pipe[Data[_], WebSocketFrame]) extends WebSocketResponseAs[Unit, S with WebSockets] with Product with Serializable

    Permalink
  36. case class ResponseAsWebSocketUnsafe[F[_]]() extends WebSocketResponseAs[WebSocket[F], Effect[F] with WebSockets] with Product with Serializable

    Permalink
  37. sealed abstract class ResponseException[+HE, +DE] extends Exception

    Permalink
  38. trait ResponseMetadata extends HasHeaders

    Permalink
  39. type RetryWhen = (Request[_, _], Either[Throwable, Response[_]]) ⇒ Boolean

    Permalink
  40. trait ShowError[-T] extends AnyRef

    Permalink
  41. class SpecifyAuthScheme[U[_], T, -R] extends AnyRef

    Permalink
  42. case class StreamBody[BinaryStream, S] extends RequestBody[S] with Product with Serializable

    Permalink
  43. case class StringBody(s: String, encoding: String, defaultContentType: MediaType = MediaType.TextPlain) extends BasicRequestBody with Product with Serializable

    Permalink
  44. trait SttpApi extends SttpExtensions with UriInterpolator

    Permalink
  45. trait SttpBackend[F[_], +P] extends AnyRef

    Permalink

    A backend is used to send HTTP requests described by RequestT.

    A backend is used to send HTTP requests described by RequestT. Backends might wrap Java or Scala HTTP clients, or other backends.

    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.

  46. case class SttpBackendOptions(connectionTimeout: FiniteDuration, proxy: Option[Proxy]) extends Product with Serializable

    Permalink
  47. abstract class SttpClientException extends Exception

    Permalink

    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 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.

  48. trait SttpExtensions extends AnyRef

    Permalink
  49. trait ToCurlConverterTestExtension extends AnyRef

    Permalink
  50. case class TooManyRedirectsException(uri: Uri, redirects: Int) extends Exception with Product with Serializable

    Permalink
  51. class TryBackend[P] extends SttpBackend[Try, P]

    Permalink

    A synchronous backend that safely wraps SttpBackend exceptions in Try's

    A synchronous backend that safely wraps SttpBackend exceptions in Try's

    P

    TODO

  52. implicit class UriContext extends AnyRef

    Permalink
    Definition Classes
    UriInterpolator
  53. sealed trait WebSocketResponseAs[T, -R] extends ResponseAs[T, R]

    Permalink
  54. type DeserializationError[DE] = DeserializationException[DE]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0) use DeserializationException

  55. type ResponseError[+HE, +DE] = ResponseException[HE, DE]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0) use ResponseException

Value Members

  1. val DefaultReadTimeout: Duration

    Permalink
    Definition Classes
    SttpApi
  2. object DigestAuthenticationBackend

    Permalink
  3. object FetchBackend

    Permalink
  4. object FetchOptions extends Serializable

    Permalink
  5. object FollowRedirectsBackend

    Permalink
  6. object IgnoreResponse extends ResponseAs[Unit, Any] with Product with Serializable

    Permalink
  7. object NoBody extends RequestBody[Any] with Product with Serializable

    Permalink
  8. object RequestBody

    Permalink
  9. object RequestMetadata

    Permalink
  10. object RequestT extends Serializable

    Permalink
  11. object Response extends Serializable

    Permalink
  12. object ResponseAs

    Permalink
  13. object ResponseAsByteArray extends ResponseAs[Array[Byte], Any] with Product with Serializable

    Permalink
  14. object ResponseAsStream extends Serializable

    Permalink
  15. object ResponseAsStreamUnsafe extends Serializable

    Permalink
  16. object ResponseMetadata

    Permalink
  17. object RetryWhen

    Permalink
  18. object ShowError

    Permalink
  19. object StreamBody extends Serializable

    Permalink
  20. object SttpBackendOptions extends Serializable

    Permalink
  21. object SttpClientException extends Serializable

    Permalink
  22. def asBoth[A, B](l: ResponseAs[A, Any], r: ResponseAs[B, Any]): ResponseAs[(A, B), Any]

    Permalink

    Use both l and r to read the response body.

    Use both l and r to read the response body. Neither response specifications may use streaming or web sockets.

    Definition Classes
    SttpApi
  23. def asBothOption[A, B, R](l: ResponseAs[A, R], r: ResponseAs[B, Any]): ResponseAs[(A, Option[B]), R]

    Permalink

    Use l to read the response body.

    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).

    Definition Classes
    SttpApi
  24. def asByteArray: ResponseAs[Either[String, Array[Byte]], Any]

    Permalink
    Definition Classes
    SttpApi
  25. def asByteArrayAlways: ResponseAs[Array[Byte], Any]

    Permalink
    Definition Classes
    SttpApi
  26. def asEither[A, B, R](onError: ResponseAs[A, R], onSuccess: ResponseAs[B, R]): ResponseAs[Either[A, B], R]

    Permalink

    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.

    Definition Classes
    SttpApi
  27. def asFile(file: File): ResponseAs[Either[String, File], Any]

    Permalink
    Definition Classes
    SttpExtensions
  28. def asFileAlways(file: File): ResponseAs[File, Any]

    Permalink
    Definition Classes
    SttpExtensions
  29. def asParams(charset: String): ResponseAs[Either[String, Seq[(String, String)]], Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  30. def asParams: ResponseAs[Either[String, Seq[(String, String)]], Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  31. def asParamsAlways(charset: String): ResponseAs[Seq[(String, String)], Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  32. def asParamsAlways: ResponseAs[Seq[(String, String)], Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  33. def asStream[F[_], T, S](s: Streams[S])(f: (BinaryStream) ⇒ F[T]): ResponseAs[Either[String, T], Effect[F] with S]

    Permalink
    Definition Classes
    SttpApi
  34. def asStreamAlways[F[_], T, S](s: Streams[S])(f: (BinaryStream) ⇒ F[T]): ResponseAs[T, Effect[F] with S]

    Permalink
    Definition Classes
    SttpApi
  35. def asStreamAlwaysUnsafe[S](s: Streams[S]): ResponseAs[BinaryStream, S]

    Permalink
    Definition Classes
    SttpApi
  36. def asStreamUnsafe[S](s: Streams[S]): ResponseAs[Either[String, BinaryStream], S]

    Permalink
    Definition Classes
    SttpApi
  37. def asString(charset: String): ResponseAs[Either[String, String], Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  38. def asString: ResponseAs[Either[String, String], Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  39. def asStringAlways(charset: String): ResponseAs[String, Any]

    Permalink
    Definition Classes
    SttpApi
  40. def asStringAlways: ResponseAs[String, Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  41. def asWebSocket[F[_], T](f: (WebSocket[F]) ⇒ F[T]): ResponseAs[Either[String, T], Effect[F] with WebSockets]

    Permalink
    Definition Classes
    SttpApi
  42. def asWebSocketAlways[F[_], T](f: (WebSocket[F]) ⇒ F[T]): ResponseAs[T, Effect[F] with WebSockets]

    Permalink
    Definition Classes
    SttpApi
  43. def asWebSocketAlwaysUnsafe[F[_]]: ResponseAs[WebSocket[F], Effect[F] with WebSockets]

    Permalink
    Definition Classes
    SttpApi
  44. def asWebSocketEither[A, B, R](onError: ResponseAs[A, R], onSuccess: ResponseAs[B, R]): ResponseAs[Either[A, B], R]

    Permalink

    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.

    Definition Classes
    SttpApi
  45. def asWebSocketStream[S](s: Streams[S])(p: Pipe[Data[_], WebSocketFrame]): ResponseAs[Either[String, Unit], S with WebSockets]

    Permalink
    Definition Classes
    SttpApi
  46. def asWebSocketStreamAlways[S](s: Streams[S])(p: Pipe[Data[_], WebSocketFrame]): ResponseAs[Unit, S with WebSockets]

    Permalink
    Definition Classes
    SttpApi
  47. def asWebSocketUnsafe[F[_]]: ResponseAs[Either[String, WebSocket[F]], Effect[F] with WebSockets]

    Permalink
    Definition Classes
    SttpApi
  48. val basicRequest: RequestT[Empty, Either[String, String], Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  49. package dom

    Permalink
  50. val emptyRequest: RequestT[Empty, Either[String, String], Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  51. def fromMetadata[T, R](default: ResponseAs[T, R], conditions: ConditionalResponseAs[T, R]*): ResponseAs[T, R]

    Permalink
    Definition Classes
    SttpApi
  52. def ignore: ResponseAs[Unit, Any]

    Permalink
    Definition Classes
    SttpApi
  53. package internal

    Permalink
  54. package listener

    Permalink
  55. package logging

    Permalink
  56. package monad

    Permalink
  57. def multipart[B](name: String, b: B)(implicit arg0: BodySerializer[B]): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  58. def multipart(name: String, fs: Seq[(String, String)], encoding: String): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  59. def multipart(name: String, fs: Seq[(String, String)]): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  60. def multipart(name: String, fs: Map[String, String], encoding: String): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  61. def multipart(name: String, fs: Map[String, String]): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  62. def multipart(name: String, data: InputStream): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  63. def multipart(name: String, data: ByteBuffer): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  64. def multipart(name: String, data: Array[Byte]): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  65. def multipart(name: String, data: String, encoding: String): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  66. def multipart(name: String, data: String): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpApi
  67. def multipartFile(name: String, file: File): Part[BasicRequestBody]

    Permalink

    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.

    Definition Classes
    SttpExtensions
  68. def multipartStream[S](s: Streams[S])(name: String, b: BinaryStream): Part[RequestBody[S]]

    Permalink

    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.

    Definition Classes
    SttpApi
  69. object quick extends SttpApi

    Permalink
  70. val quickRequest: RequestT[Empty, String, Any]

    Permalink

    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.

    Definition Classes
    SttpApi
  71. package testing

    Permalink
  72. package ws

    Permalink

Inherited from SttpApi

Inherited from UriInterpolator

Inherited from SttpExtensions

Inherited from AnyRef

Inherited from Any

Ungrouped