Class/Object

sttp.client

RequestT

Related Docs: object RequestT | package client

Permalink

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

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.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RequestT
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. RequestTExtensions
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RequestT(method: U[Method], uri: U[Uri], body: RequestBody[S], headers: Seq[Header], response: ResponseAs[T, S], options: RequestOptions, tags: Map[String, Any])

    Permalink

    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.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def acceptEncoding(encoding: String): RequestT[U, T, S]

    Permalink
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def auth: SpecifyAuthScheme[U, T, S]

    Permalink
  7. def body(fs: Seq[(String, String)], encoding: String): RequestT[U, T, S]

    Permalink

    Encodes the given parameters as form data.

    Encodes the given parameters as form data. If content type is not yet specified, will be set to application/x-www-form-urlencoded.

    If content length is not yet specified, will be set to the length of the number of bytes in the url-encoded parameter string.

  8. def body(fs: (String, String)*): RequestT[U, T, S]

    Permalink

    Encodes the given parameters as form data using utf-8.

    Encodes the given parameters as form data using utf-8. If content type is not yet specified, will be set to application/x-www-form-urlencoded.

    If content length is not yet specified, will be set to the length of the number of bytes in the url-encoded parameter string.

  9. def body(fs: Map[String, String], encoding: String): RequestT[U, T, S]

    Permalink

    Encodes the given parameters as form data.

    Encodes the given parameters as form data. If content type is not yet specified, will be set to application/x-www-form-urlencoded.

    If content length is not yet specified, will be set to the length of the number of bytes in the url-encoded parameter string.

  10. def body(fs: Map[String, String]): RequestT[U, T, S]

    Permalink

    Encodes the given parameters as form data using utf-8.

    Encodes the given parameters as form data using utf-8. If content type is not yet specified, will be set to application/x-www-form-urlencoded.

    If content length is not yet specified, will be set to the length of the number of bytes in the url-encoded parameter string.

  11. def body(b: InputStream): RequestT[U, T, S]

    Permalink

    If content type is not yet specified, will be set to application/octet-stream.

  12. def body(b: ByteBuffer): RequestT[U, T, S]

    Permalink

    If content type is not yet specified, will be set to application/octet-stream.

  13. def body(b: Array[Byte]): RequestT[U, T, S]

    Permalink

    If content type is not yet specified, will be set to application/octet-stream.

    If content type is not yet specified, will be set to application/octet-stream.

    If content length is not yet specified, will be set to the length of the given array.

  14. def body(b: String, encoding: String): RequestT[U, T, S]

    Permalink

    If content type is not yet specified, will be set to text/plain with the given encoding.

    If content type is not yet specified, will be set to text/plain with the given encoding.

    If content length is not yet specified, will be set to the number of bytes in the string using the given encoding.

  15. def body(b: String): RequestT[U, T, S]

    Permalink

    Uses the utf-8 encoding.

    Uses the utf-8 encoding.

    If content type is not yet specified, will be set to text/plain with utf-8 encoding.

    If content length is not yet specified, will be set to the number of bytes in the string using the utf-8 encoding.

  16. def body[B](b: B)(implicit arg0: BodySerializer[B]): RequestT[U, T, S]

    Permalink

    If content type is not yet specified, will be set to application/octet-stream.

    If content type is not yet specified, will be set to application/octet-stream.

    Definition Classes
    RequestTExtensions
  17. def body(path: Path): RequestT[U, T, S]

    Permalink

    If content type is not yet specified, will be set to application/octet-stream.

    If content type is not yet specified, will be set to application/octet-stream.

    If content length is not yet specified, will be set to the length of the given file.

    Definition Classes
    RequestTExtensions
  18. def body(file: File): RequestT[U, T, S]

    Permalink

    If content type is not yet specified, will be set to application/octet-stream.

    If content type is not yet specified, will be set to application/octet-stream.

    If content length is not yet specified, will be set to the length of the given file.

    Definition Classes
    RequestTExtensions
  19. val body: RequestBody[S]

    Permalink
  20. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @throws( ... )
  21. def contentLength(l: Long): RequestT[U, T, S]

    Permalink
  22. def contentType(ct: String, encoding: String): RequestT[U, T, S]

    Permalink
  23. def contentType(mt: MediaType): RequestT[U, T, S]

    Permalink
  24. def contentType(ct: String): RequestT[U, T, S]

    Permalink
  25. def cookie(n: String, v: String): RequestT[U, T, S]

    Permalink
  26. def cookie(nv: (String, String)): RequestT[U, T, S]

    Permalink
  27. def cookies(nvs: (String, String)*): RequestT[U, T, S]

    Permalink
  28. def cookies(cs: Iterable[CookieWithMeta]): RequestT[U, T, S]

    Permalink
  29. def cookies(r: Response[_]): RequestT[U, T, S]

    Permalink
  30. def delete(uri: Uri): Request[T, S]

    Permalink
  31. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  32. def followRedirects(fr: Boolean): RequestT[U, T, S]

    Permalink
  33. def get(uri: Uri): Request[T, S]

    Permalink
  34. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  35. def head(uri: Uri): Request[T, S]

    Permalink
  36. def header(k: String, ov: Option[String]): RequestT[U, T, S]

    Permalink
  37. def header(k: String, v: String): RequestT[U, T, S]

    Permalink
  38. def header(k: String, v: String, replaceExisting: Boolean): RequestT[U, T, S]

    Permalink

    Adds the given header to the end of the headers sequence.

    Adds the given header to the end of the headers sequence.

    replaceExisting

    If there's already a header with the same name, should it be dropped?

  39. def header(h: Header, replaceExisting: Boolean = false): RequestT[U, T, S]

    Permalink

    Adds the given header to the end of the headers sequence.

    Adds the given header to the end of the headers sequence.

    replaceExisting

    If there's already a header with the same name, should it be dropped?

  40. def headers(hs: Header*): RequestT[U, T, S]

    Permalink
  41. def headers(hs: Map[String, String]): RequestT[U, T, S]

    Permalink
  42. val headers: Seq[Header]

    Permalink
  43. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  44. def mapResponse[T2](f: (T) ⇒ T2): RequestT[U, T2, S]

    Permalink
  45. def maxRedirects(n: Int): RequestT[U, T, S]

    Permalink
  46. def method(method: Method, uri: Uri): Request[T, S]

    Permalink
  47. val method: U[Method]

    Permalink
  48. def multipartBody(p1: Part[BasicRequestBody], ps: Part[BasicRequestBody]*): RequestT[U, T, S]

    Permalink
  49. def multipartBody(ps: Seq[Part[BasicRequestBody]]): RequestT[U, T, S]

    Permalink
  50. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  51. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  52. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  53. def openWebsocket[F[_], WS_HANDLER[_], WS_RESULT](handler: WS_HANDLER[WS_RESULT])(implicit backend: SttpBackend[F, S, WS_HANDLER], isIdInRequest: IsIdInRequest[U]): F[WebSocketResponse[WS_RESULT]]

    Permalink

    Opens a websocket, using the backend from the implicit scope.

    Opens a websocket, using the backend from the implicit scope. Only requests for which the method & URI are specified can be sent. The backend must support handlers of the given type.

    returns

    Depending on the backend, either the WebSocketResponse (Identity synchronous backends), or the WebSocketResponse in a backend-specific wrapper, or a failed effect (other backends). Exceptions can be thrown directly (Identity synchronous backends), or wrapped (asynchronous backends). Known exceptions are converted by backends to one of SttpClientException. Other exceptions are thrown unchanged.

  54. def openWebsocketF[F[_], WS_HANDLER[_], WS_RESULT](handler: F[WS_HANDLER[WS_RESULT]])(implicit backend: SttpBackend[F, S, WS_HANDLER], isIdInRequest: IsIdInRequest[U]): F[WebSocketResponse[WS_RESULT]]

    Permalink
  55. def options(uri: Uri): Request[T, S]

    Permalink
  56. val options: RequestOptions

    Permalink
  57. def patch(uri: Uri): Request[T, S]

    Permalink
  58. def post(uri: Uri): Request[T, S]

    Permalink
  59. def proxyAuth: SpecifyAuthScheme[U, T, S]

    Permalink
  60. def put(uri: Uri): Request[T, S]

    Permalink
  61. def readTimeout(t: Duration): RequestT[U, T, S]

    Permalink
  62. def redirectToGet(r: Boolean): RequestT[U, T, S]

    Permalink

    When a POST or PUT request is redirected, should the redirect be a POST/PUT as well (with the original body), or should the request be converted to a GET without a body.

    When a POST or PUT request is redirected, should the redirect be a POST/PUT as well (with the original body), or should the request be converted to a GET without a body.

    Note that this only affects 301 and 302 redirects. 303 redirects are always converted, while 307 and 308 redirects always keep the same method.

    See https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections for details.

  63. def response[T2, S2 >: S](ra: ResponseAs[T2, S2]): RequestT[U, T2, S2]

    Permalink

    Specifies the target type to which the response body should be read.

    Specifies the target type to which the response body should be read. Note that this replaces any previous specifications, which also includes any previous mapResponse invocations.

  64. val response: ResponseAs[T, S]

    Permalink

    Description of how the response body should be handled.

    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.

  65. def send[F[_]]()(implicit backend: SttpBackend[F, S, NothingT], isIdInRequest: IsIdInRequest[U]): F[Response[T]]

    Permalink

    Sends the request, using the backend from the implicit scope.

    Sends the request, using the backend from the implicit scope. Only requests for which the method & URI are specified can be sent.

    returns

    Depending on the backend, either the Response (Identity synchronous backends), or the Response in a backend-specific wrapper, or a failed effect (other backends). The response body is deserialized as specified by this request (see RequestT.response). Exceptions can be thrown directly (Identity synchronous backends), or wrapped (asynchronous backends). Known exceptions are converted by backends to one of SttpClientException. Other exceptions are thrown unchanged.

  66. def streamBody[S2 >: S](b: S2): RequestT[U, T, S2]

    Permalink
  67. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  68. def tag(k: String): Option[Any]

    Permalink
  69. def tag(k: String, v: Any): RequestT[U, T, S]

    Permalink
  70. val tags: Map[String, Any]

    Permalink

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

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

  71. def toCurl(implicit isIdInRequest: IsIdInRequest[U]): String

    Permalink
  72. val uri: U[Uri]

    Permalink
  73. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  74. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  75. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from RequestTExtensions[U, T, S]

Inherited from AnyRef

Inherited from Any

Ungrouped