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. sealed trait BasicRequestBody extends RequestBody[Nothing]

    Permalink
  2. sealed trait BasicResponseAs[T, +S] extends ResponseAs[T, S]

    Permalink

    Response handling specification which isn't derived from another response handling method, but needs to be handled directly by the backend.

  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: Option[MediaType] = ...) extends BasicRequestBody with Product with Serializable

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

    Permalink
  6. case class DeserializationError[T](body: String, error: T)(implicit evidence$4: ShowError[T]) extends ResponseError[T] with Product with Serializable

    Permalink
  7. class DigestAuthenticationBackend[F[_], S, WS_HANDLER[_]] extends SttpBackend[F, S, WS_HANDLER]

    Permalink
  8. class EitherBackend[S, WS_HANDLER[_]] extends SttpBackend[[β$0$]Either[Throwable, β$0$], S, WS_HANDLER]

    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

    S

    The type of streams that are supported by the backend. Nothing, if streaming requests/responses is not supported by this backend.

    WS_HANDLER

    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.

  9. type Empty[X] = None.type

    Permalink
  10. case class FileBody(f: SttpFile, defaultContentType: Option[MediaType] = ...) extends BasicRequestBody with Product with Serializable

    Permalink
  11. class FollowRedirectsBackend[F[_], S, WS_HANDLER[_]] extends SttpBackend[F, S, WS_HANDLER]

    Permalink
  12. case class HttpError(body: String, statusCode: StatusCode) extends ResponseError[Nothing] with Product with Serializable

    Permalink
  13. class HttpURLConnectionBackend extends SttpBackend[Identity, Nothing, NothingT]

    Permalink
  14. type Identity[X] = X

    Permalink
  15. case class InputStreamBody(b: InputStream, defaultContentType: Option[MediaType] = ...) extends BasicRequestBody with Product with Serializable

    Permalink
  16. case class MappedResponseAs[T, T2, S](raw: ResponseAs[T, S], g: (T, ResponseMetadata) ⇒ T2) extends ResponseAs[T2, S] with Product with Serializable

    Permalink
  17. case class MultipartBody(parts: Seq[Part[BasicRequestBody]]) extends RequestBody[Nothing] with Product with Serializable

    Permalink
  18. type NothingT[X] = Nothing

    Permalink
  19. type PartialRequest[T, +S] = RequestT[Empty, T, S]

    Permalink
  20. type Request[T, +S] = RequestT[Identity, T, S]

    Permalink
  21. sealed trait RequestBody[+S] extends AnyRef

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

    Permalink
  23. case class RequestT[U[_], T, +S](method: U[Method], uri: U[Uri], body: RequestBody[S], headers: Seq[Header], response: ResponseAs[T, S], options: RequestOptions, tags: Map[String, Any]) extends RequestTExtensions[U, T, S] 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.

    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.

    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 streaming responses, which need to fully consumed by the client if such a response type is requested.

    tags

    Request-specific tags which can be used by backends for logging, metrics, etc. Not used by default.

  24. trait RequestTExtensions[U[_], T, +S] extends AnyRef

    Permalink
  25. case class Response[T](body: T, code: StatusCode, statusText: String, headers: Seq[Header], history: List[Response[Unit]]) 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.

  26. sealed trait ResponseAs[+T, +S] 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, 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._.

    T

    Target type as which the response will be read.

    S

    If T is a stream, the type of the stream. Otherwise, Nothing.

  27. case class ResponseAsFile(output: SttpFile) extends BasicResponseAs[SttpFile, Nothing] with Product with Serializable

    Permalink
  28. case class ResponseAsFromMetadata[T, S](f: (ResponseMetadata) ⇒ ResponseAs[T, S]) extends ResponseAs[T, S] with Product with Serializable

    Permalink
  29. case class ResponseAsStream[T, S]()(implicit responseIsStream: =:=[S, T]) extends BasicResponseAs[T, S] with Product with Serializable

    Permalink
  30. sealed abstract class ResponseError[+T] extends Exception

    Permalink
  31. trait ResponseMetadata extends HasHeaders

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

    Permalink
  33. trait ShowError[-T] extends AnyRef

    Permalink
  34. class SpecifyAuthScheme[U[_], T, +S] extends AnyRef

    Permalink
  35. case class StreamBody[S](s: S) extends RequestBody[S] with Product with Serializable

    Permalink
  36. case class StringBody(s: String, encoding: String, defaultContentType: Option[MediaType] = Some(MediaType.TextPlain)) extends BasicRequestBody with Product with Serializable

    Permalink
  37. trait SttpApi extends SttpExtensions with UriInterpolator

    Permalink
  38. trait SttpBackend[F[_], -S, -WS_HANDLER[_]] extends AnyRef

    Permalink

    F

    The type constructor in which responses are wrapped. E.g. Identity for synchronous backends, scala.concurrent.Future for asynchronous backends.

    S

    The type of streams that are supported by the backend. Nothing, if streaming requests/responses is not supported by this backend.

    WS_HANDLER

    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.

    Note

    Backends should try to classify exceptions into one of the categories specified by SttpClientException. Other exceptions should be thrown unchanged.

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

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

  41. trait SttpExtensions extends AnyRef

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

    Permalink
  43. class TryBackend[S, WS_HANDLER[_]] extends SttpBackend[Try, S, WS_HANDLER]

    Permalink

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

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

    S

    The type of streams that are supported by the backend. Nothing, if streaming requests/responses is not supported by this backend.

    WS_HANDLER

    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.

  44. implicit class UriContext extends AnyRef

    Permalink
    Definition Classes
    UriInterpolator

Value Members

  1. val DefaultReadTimeout: Duration

    Permalink
    Definition Classes
    SttpApi
  2. object DigestAuthenticationBackend

    Permalink
  3. object FollowRedirectsBackend

    Permalink
  4. object HttpURLConnectionBackend

    Permalink
  5. object IgnoreResponse extends BasicResponseAs[Unit, Nothing] with Product with Serializable

    Permalink
  6. object NoBody extends RequestBody[Nothing] with Product with Serializable

    Permalink
  7. object RequestBody

    Permalink
  8. object RequestT extends Serializable

    Permalink
  9. object Response extends Serializable

    Permalink
  10. object ResponseAs

    Permalink
  11. object ResponseAsByteArray extends BasicResponseAs[Array[Byte], Nothing] with Product with Serializable

    Permalink
  12. object ResponseMetadata

    Permalink
  13. object RetryWhen

    Permalink
  14. object ShowError

    Permalink
  15. object SttpBackendOptions extends Serializable

    Permalink
  16. object SttpClientException extends Serializable

    Permalink
  17. object TryHttpURLConnectionBackend

    Permalink
  18. def asByteArray: ResponseAs[Either[String, Array[Byte]], Nothing]

    Permalink
    Definition Classes
    SttpApi
  19. def asByteArrayAlways: ResponseAs[Array[Byte], Nothing]

    Permalink
    Definition Classes
    SttpApi
  20. def asEither[L, R, S](onError: ResponseAs[L, S], onSuccess: ResponseAs[R, S]): ResponseAs[Either[L, R], S]

    Permalink
    Definition Classes
    SttpApi
  21. def asFile(file: File): ResponseAs[Either[String, File], Nothing]

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

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

    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
  24. def asParams: ResponseAs[Either[String, Seq[(String, String)]], Nothing]

    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
  25. def asPath(path: Path): ResponseAs[Either[String, Path], Nothing]

    Permalink
    Definition Classes
    SttpExtensions
  26. def asPathAlways(path: Path): ResponseAs[Path, Nothing]

    Permalink
    Definition Classes
    SttpExtensions
  27. def asStream[S]: ResponseAs[Either[String, S], S]

    Permalink
    Definition Classes
    SttpApi
  28. def asStreamAlways[S]: ResponseAs[S, S]

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

    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 asString: ResponseAs[Either[String, String], Nothing]

    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 asStringAlways(charset: String): ResponseAs[String, Nothing]

    Permalink
    Definition Classes
    SttpApi
  32. def asStringAlways: ResponseAs[String, Nothing]

    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. val basicRequest: RequestT[Empty, Either[String, String], Nothing]

    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
  34. val emptyRequest: RequestT[Empty, Either[String, String], Nothing]

    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
  35. def fromMetadata[T, S](f: (ResponseMetadata) ⇒ ResponseAs[T, S]): ResponseAs[T, S]

    Permalink
    Definition Classes
    SttpApi
  36. def ignore: ResponseAs[Unit, Nothing]

    Permalink
    Definition Classes
    SttpApi
  37. package internal

    Permalink
  38. package listener

    Permalink
  39. package logging

    Permalink
  40. package monad

    Permalink
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. def multipartFile(name: String, data: Path): 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
  52. def multipartFile(name: String, data: 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
  53. object quick extends SttpApi

    Permalink
  54. val quickRequest: RequestT[Empty, String, Nothing]

    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
  55. package testing

    Permalink
  56. package ws

    Permalink

Inherited from SttpApi

Inherited from UriInterpolator

Inherited from SttpExtensions

Inherited from AnyRef

Inherited from Any

Ungrouped