p

sttp

client3

package client3

Linear Supertypes
SttpApi, UriInterpolator, SttpExtensions, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. client3
  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[Any]
  2. type BodySerializer[B] = (B) ⇒ BasicRequestBody

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

  3. case class ByteArrayBody(b: Array[Byte], defaultContentType: MediaType = MediaType.ApplicationOctetStream) extends BasicRequestBody with Product with Serializable
  4. case class ByteBufferBody(b: ByteBuffer, defaultContentType: MediaType = MediaType.ApplicationOctetStream) extends BasicRequestBody with Product with Serializable
  5. case class ConditionalResponseAs[+T, R](condition: (ResponseMetadata) ⇒ Boolean, responseAs: ResponseAs[T, R]) extends Product with Serializable
  6. abstract class DelegateSttpBackend[F[_], +P] extends SttpBackend[F, P]

    A base class for delegate backends, which includes delegating implementations for close and responseMonad, so that only send needs to be defined.

  7. case class DeserializationException[DE](body: String, error: DE)(implicit evidence$5: ShowError[DE]) extends ResponseException[Nothing, DE] with Product with Serializable
  8. class DigestAuthenticationBackend[F[_], P] extends DelegateSttpBackend[F, P]
  9. class EitherBackend[P] extends SttpBackend[[β$0$]Either[Throwable, β$0$], P]

    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
  11. case class FileBody(f: SttpFile, defaultContentType: MediaType = MediaType.ApplicationOctetStream) extends BasicRequestBody with Product with Serializable
  12. class FollowRedirectsBackend[F[_], P] extends DelegateSttpBackend[F, P]
  13. case class HttpError[HE](body: HE, statusCode: StatusCode) extends ResponseException[HE, Nothing] with Product with Serializable
  14. class HttpURLConnectionBackend extends SttpBackend[Identity, Any]
  15. type Identity[X] = X
  16. case class InputStreamBody(b: InputStream, defaultContentType: MediaType = MediaType.ApplicationOctetStream) extends BasicRequestBody with Product with Serializable
  17. 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
  18. case class MultipartBody[R](parts: Seq[Part[RequestBody[R]]]) extends RequestBody[R] with Product with Serializable
  19. type PartialRequest[T, -R] = RequestT[Empty, T, R]

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

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

    A RequestT with the method & uri specified.

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

  21. sealed trait RequestBody[-R] extends AnyRef
  22. case class RequestOptions(followRedirects: Boolean, readTimeout: Duration, maxRedirects: Int, redirectToGet: Boolean) extends Product with Serializable
  23. 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

    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.

  24. trait RequestTExtensions[U[_], T, -R] extends AnyRef
  25. class ResolveRelativeUrisBackend[F[_], +P] extends DelegateSttpBackend[F, P]
  26. 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

    history

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

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

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

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

  28. case class ResponseAsBoth[A, B, R](l: ResponseAs[A, R], r: ResponseAs[B, Any]) extends ResponseAs[(A, Option[B]), R] with Product with Serializable
  29. case class ResponseAsFile(output: SttpFile) extends ResponseAs[SttpFile, Any] with Product with Serializable
  30. case class ResponseAsFromMetadata[T, R](conditions: List[ConditionalResponseAs[T, R]], default: ResponseAs[T, R]) extends ResponseAs[T, R] with Product with Serializable
  31. case class ResponseAsStream[F[_], T, Stream, S] extends ResponseAs[T, Effect[F] with S] with Product with Serializable
  32. case class ResponseAsStreamUnsafe[BinaryStream, S] extends ResponseAs[BinaryStream, S] with Product with Serializable
  33. case class ResponseAsWebSocket[F[_], T](f: (WebSocket[F], ResponseMetadata) ⇒ F[T]) extends WebSocketResponseAs[T, Effect[F] with WebSockets] with Product with Serializable
  34. case class ResponseAsWebSocketStream[S, Pipe[_, _]](s: Streams[S], p: Pipe[Data[_], WebSocketFrame]) extends WebSocketResponseAs[Unit, S with WebSockets] with Product with Serializable
  35. case class ResponseAsWebSocketUnsafe[F[_]]() extends WebSocketResponseAs[WebSocket[F], Effect[F] with WebSockets] with Product with Serializable
  36. sealed abstract class ResponseException[+HE, +DE] extends Exception
  37. type RetryWhen = (Request[_, _], Either[Throwable, Response[_]]) ⇒ Boolean
  38. trait ShowError[-T] extends AnyRef
  39. class SpecifyAuthScheme[U[_], T, -R] extends AnyRef
  40. case class StreamBody[BinaryStream, S] extends RequestBody[S] with Product with Serializable
  41. case class StringBody(s: String, encoding: String, defaultContentType: MediaType = MediaType.TextPlain) extends BasicRequestBody with Product with Serializable
  42. trait SttpApi extends SttpExtensions with UriInterpolator
  43. trait SttpBackend[F[_], +P] extends AnyRef

    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.

  44. case class SttpBackendOptions(connectionTimeout: FiniteDuration, proxy: Option[Proxy]) extends Product with Serializable
  45. abstract class SttpClientException extends Exception

    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.

  46. trait SttpExtensions extends AnyRef
  47. case class TooManyRedirectsException(uri: Uri, redirects: Int) extends Exception with Product with Serializable
  48. class TryBackend[P] extends SttpBackend[Try, P]

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

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

    P

    TODO

  49. implicit class UriContext extends AnyRef
    Definition Classes
    UriInterpolator
  50. sealed trait WebSocketResponseAs[T, -R] extends ResponseAs[T, R]
  51. type DeserializationError[DE] = DeserializationException[DE]
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0) use DeserializationException

  52. type ResponseError[+HE, +DE] = ResponseException[HE, DE]
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0) use ResponseException

Value Members

  1. val DefaultReadTimeout: Duration
    Definition Classes
    SttpApi
  2. def asBoth[A, B](l: ResponseAs[A, Any], r: ResponseAs[B, Any]): ResponseAs[(A, B), Any]

    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
  3. def asBothOption[A, B, R](l: ResponseAs[A, R], r: ResponseAs[B, Any]): ResponseAs[(A, Option[B]), R]

    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
  4. def asByteArray: ResponseAs[Either[String, Array[Byte]], Any]
    Definition Classes
    SttpApi
  5. def asByteArrayAlways: ResponseAs[Array[Byte], Any]
    Definition Classes
    SttpApi
  6. def asEither[A, B, R](onError: ResponseAs[A, R], onSuccess: ResponseAs[B, R]): ResponseAs[Either[A, B], R]

    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
  7. def asFile(file: File): ResponseAs[Either[String, File], Any]
    Definition Classes
    SttpExtensions
  8. def asFileAlways(file: File): ResponseAs[File, Any]
    Definition Classes
    SttpExtensions
  9. def asParams(charset: String): ResponseAs[Either[String, Seq[(String, String)]], Any]

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

    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
  11. def asParamsAlways(charset: String): ResponseAs[Seq[(String, String)], Any]

    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
  12. def asParamsAlways: ResponseAs[Seq[(String, String)], Any]

    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
  13. def asPath(path: Path): ResponseAs[Either[String, Path], Any]
    Definition Classes
    SttpExtensions
  14. def asPathAlways(path: Path): ResponseAs[Path, Any]
    Definition Classes
    SttpExtensions
  15. def asStream[F[_], T, S](s: Streams[S])(f: (BinaryStream) ⇒ F[T]): ResponseAs[Either[String, T], Effect[F] with S]
    Definition Classes
    SttpApi
  16. def asStreamAlways[F[_], T, S](s: Streams[S])(f: (BinaryStream) ⇒ F[T]): ResponseAs[T, Effect[F] with S]
    Definition Classes
    SttpApi
  17. def asStreamAlwaysUnsafe[S](s: Streams[S]): ResponseAs[BinaryStream, S]
    Definition Classes
    SttpApi
  18. def asStreamAlwaysWithMetadata[F[_], T, S](s: Streams[S])(f: (BinaryStream, ResponseMetadata) ⇒ F[T]): ResponseAs[T, Effect[F] with S]
    Definition Classes
    SttpApi
  19. def asStreamUnsafe[S](s: Streams[S]): ResponseAs[Either[String, BinaryStream], S]
    Definition Classes
    SttpApi
  20. def asStreamWithMetadata[F[_], T, S](s: Streams[S])(f: (BinaryStream, ResponseMetadata) ⇒ F[T]): ResponseAs[Either[String, T], Effect[F] with S]
    Definition Classes
    SttpApi
  21. def asString(charset: String): ResponseAs[Either[String, String], Any]

    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
  22. def asString: ResponseAs[Either[String, String], Any]

    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
  23. def asStringAlways(charset: String): ResponseAs[String, Any]
    Definition Classes
    SttpApi
  24. def asStringAlways: ResponseAs[String, Any]

    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 asWebSocket[F[_], T](f: (WebSocket[F]) ⇒ F[T]): ResponseAs[Either[String, T], Effect[F] with WebSockets]
    Definition Classes
    SttpApi
  26. def asWebSocketAlways[F[_], T](f: (WebSocket[F]) ⇒ F[T]): ResponseAs[T, Effect[F] with WebSockets]
    Definition Classes
    SttpApi
  27. def asWebSocketAlwaysUnsafe[F[_]]: ResponseAs[WebSocket[F], Effect[F] with WebSockets]
    Definition Classes
    SttpApi
  28. def asWebSocketAlwaysWithMetadata[F[_], T](f: (WebSocket[F], ResponseMetadata) ⇒ F[T]): ResponseAs[T, Effect[F] with WebSockets]
    Definition Classes
    SttpApi
  29. def asWebSocketEither[A, B, R](onError: ResponseAs[A, R], onSuccess: ResponseAs[B, R]): ResponseAs[Either[A, B], R]

    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
  30. def asWebSocketStream[S](s: Streams[S])(p: Pipe[Data[_], WebSocketFrame]): ResponseAs[Either[String, Unit], S with WebSockets]
    Definition Classes
    SttpApi
  31. def asWebSocketStreamAlways[S](s: Streams[S])(p: Pipe[Data[_], WebSocketFrame]): ResponseAs[Unit, S with WebSockets]
    Definition Classes
    SttpApi
  32. def asWebSocketUnsafe[F[_]]: ResponseAs[Either[String, WebSocket[F]], Effect[F] with WebSockets]
    Definition Classes
    SttpApi
  33. def asWebSocketWithMetadata[F[_], T](f: (WebSocket[F], ResponseMetadata) ⇒ F[T]): ResponseAs[Either[String, T], Effect[F] with WebSockets]
    Definition Classes
    SttpApi
  34. val basicRequest: RequestT[Empty, Either[String, String], Any]

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

    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
  36. def fromMetadata[T, R](default: ResponseAs[T, R], conditions: ConditionalResponseAs[T, R]*): ResponseAs[T, R]
    Definition Classes
    SttpApi
  37. def ignore: ResponseAs[Unit, Any]
    Definition Classes
    SttpApi
  38. def multipart[B](name: String, b: B)(implicit arg0: BodySerializer[B]): Part[BasicRequestBody]

    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
  39. def multipart(name: String, fs: Seq[(String, String)], encoding: String): Part[BasicRequestBody]

    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
  40. def multipart(name: String, fs: Seq[(String, String)]): Part[BasicRequestBody]

    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
  41. def multipart(name: String, fs: Map[String, String], encoding: String): Part[BasicRequestBody]

    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
  42. def multipart(name: String, fs: Map[String, String]): Part[BasicRequestBody]

    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
  43. def multipart(name: String, data: InputStream): Part[BasicRequestBody]

    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
  44. def multipart(name: String, data: ByteBuffer): Part[BasicRequestBody]

    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
  45. def multipart(name: String, data: Array[Byte]): Part[BasicRequestBody]

    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
  46. def multipart(name: String, data: String, encoding: String): Part[BasicRequestBody]

    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.

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

    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
  48. def multipartFile(name: String, data: Path): Part[RequestBody[Any]]

    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
  49. def multipartFile(name: String, data: File): Part[RequestBody[Any]]

    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
  50. def multipartStream[S](s: Streams[S])(name: String, b: BinaryStream): Part[RequestBody[S]]

    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
  51. val quickRequest: RequestT[Empty, String, Any]

    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
  52. object DigestAuthenticationBackend
  53. object FollowRedirectsBackend
  54. object HttpURLConnectionBackend
  55. object IgnoreResponse extends ResponseAs[Unit, Any] with Product with Serializable
  56. object NoBody extends RequestBody[Any] with Product with Serializable
  57. object RequestBody
  58. object RequestT extends Serializable
  59. object ResolveRelativeUrisBackend
  60. object Response extends Serializable
  61. object ResponseAs
  62. object ResponseAsByteArray extends ResponseAs[Array[Byte], Any] with Product with Serializable
  63. object ResponseAsStream extends Serializable
  64. object ResponseAsStreamUnsafe extends Serializable
  65. object RetryWhen
  66. object ShowError
  67. object StreamBody extends Serializable
  68. object SttpBackendOptions extends Serializable
  69. object SttpClientException extends Serializable
  70. object TryHttpURLConnectionBackend
  71. object quick extends SttpApi

Inherited from SttpApi

Inherited from UriInterpolator

Inherited from SttpExtensions

Inherited from AnyRef

Inherited from Any

Ungrouped