Packages

final class Request[F[_]] extends Message[F] with Product with Serializable

Representation of an incoming HTTP message

A Request encapsulates the entirety of the incoming HTTP request including the status line, headers, and a possible request body.

Source
Message.scala
Linear Supertypes
Serializable, Serializable, Product, Equals, Message[F], Media[F], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Request
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Message
  7. Media
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type Self = SelfF[F]
    Definition Classes
    Message
  2. type SelfF[F0[_]] = Request[F0]
    Definition Classes
    RequestMessage

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addCookie(name: String, content: String): Request[F]

    Add a Cookie header with the provided values

  5. def addCookie(cookie: RequestCookie): Request[F]

    Add a Cookie header for the provided org.http4s.headers.Cookie

  6. def addHeader[H](h: H)(implicit arg0: Header[H, Recurring]): Self

    Add a header to these headers.

    Add a header to these headers. The header should be a type with a recurring Header instance to ensure that the new value can be appended to any existing values.

    >>> import cats.effect.IO
    >>> import org.http4s.headers.Accept
    
    >>> val req = Request[IO]().addHeader(Accept(MediaRange.`application/*`))
    >>> req.headers.get[Accept]
    Some(Accept(NonEmptyList(application/*)))
    
    >>> val req2 = req.addHeader(Accept(MediaRange.`text/*`))
    >>> req2.headers.get[Accept]
    Some(Accept(NonEmptyList(application/*, text/*)))

    */*/*/*/*/

    Definition Classes
    Message
  7. final def as[A](implicit F: MonadThrow[F], decoder: EntityDecoder[F, A]): F[A]

    Decode the Media to the specified type

    Decode the Media to the specified type

    If no valid Status has been described, allow Ok

    A

    type of the result

    decoder

    EntityDecoder used to decode the Media

    returns

    the effect which will generate the A

    Definition Classes
    Media
  8. def asCurl(redactHeadersWhen: (CIString) ⇒ Boolean = Headers.SensitiveHeaders.contains): String

    cURL representation of the request.

    cURL representation of the request.

    Supported cURL-Parameters are: --request, --url, --header. Note that asCurl will not print the request body.

  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. final def attemptAs[T](implicit decoder: EntityDecoder[F, T]): DecodeResult[F, T]

    Decode the Media to the specified type

    Decode the Media to the specified type

    T

    type of the result

    decoder

    EntityDecoder used to decode the Media

    returns

    the effect which will generate the DecodeResult[T]

    Definition Classes
    Media
  11. val attributes: Vault
    Definition Classes
    RequestMessage
  12. def authType: Option[AuthScheme]
  13. val body: EntityBody[F]
    Definition Classes
    RequestMessageMedia
  14. final def bodyText(implicit RT: RaiseThrowable[F], defaultCharset: Charset = `UTF-8`): Stream[F, String]
    Definition Classes
    Media
  15. def canEqual(that: Any): Boolean
    Definition Classes
    Request → Equals
  16. def change(httpVersion: HttpVersion, body: EntityBody[F], headers: Headers, attributes: Vault): Request[F]
    Attributes
    protected
    Definition Classes
    RequestMessage
  17. final def charset: Option[Charset]
    Definition Classes
    Media
  18. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  19. final def contentLength: Option[Long]
    Definition Classes
    Media
  20. final def contentType: Option[Content-Type]
    Definition Classes
    Media
  21. def cookies: List[RequestCookie]

    Parses all available org.http4s.headers.Cookie headers into a list of RequestCookie objects.

    Parses all available org.http4s.headers.Cookie headers into a list of RequestCookie objects. This implementation is compatible with cookie headers formatted per HTTP/1 and HTTP/2, or even both at the same time.

  22. def covary[F2[x] >: F[x]]: SelfF[F2]

    Lifts this Message's body to the specified effect type.

    Lifts this Message's body to the specified effect type.

    Definition Classes
    MessageMedia
  23. def decode[A](f: (A) ⇒ F[Response[F]])(implicit F: Monad[F], decoder: EntityDecoder[F, A]): F[Response[F]]

    Helper method for decoding Requests

    Helper method for decoding Requests

    Attempt to decode the Request and, if successful, execute the continuation to get a Response. If decoding fails, an UnprocessableEntity Response is generated.

  24. def decodeStrict[A](f: (A) ⇒ F[Response[F]])(implicit F: Monad[F], decoder: EntityDecoder[F, A]): F[Response[F]]

    Helper method for decoding Requests

    Helper method for decoding Requests

    Attempt to decode the Request and, if successful, execute the continuation to get a Response. If decoding fails, an UnprocessableEntity Response is generated. If the decoder does not support the MediaType of the Request, a UnsupportedMediaType Response is generated instead.

  25. def decodeWith[A](decoder: EntityDecoder[F, A], strict: Boolean)(f: (A) ⇒ F[Response[F]])(implicit F: Monad[F]): F[Response[F]]
  26. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  27. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  28. def filterHeaders(f: (Raw) ⇒ Boolean): Self

    Keep headers that satisfy the predicate

    Keep headers that satisfy the predicate

    f

    predicate

    returns

    a new message object which has only headers that satisfy the predicate

    Definition Classes
    Message
  29. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  30. def from: Option[IpAddress]

    Returns the the X-Forwarded-For value if present, else the remote address.

  31. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  32. def hashCode(): Int
    Definition Classes
    Request → AnyRef → Any
  33. val headers: Headers
    Definition Classes
    RequestMessageMedia
  34. val httpVersion: HttpVersion
    Definition Classes
    RequestMessage
  35. def isChunked: Boolean
    Definition Classes
    Message
  36. def isIdempotent: Boolean

    A request is idempotent if its method is idempotent or it contains an Idempotency-Key header.

  37. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  38. def isSecure: Option[Boolean]

    Whether the Request was received over a secure medium

  39. def mapK[G[_]](f: ~>[F, G]): Request[G]
  40. val method: Method
  41. def multiParams: Map[String, Seq[String]]

    Representation of the query string as a map

    Representation of the query string as a map

    In case a parameter is available in query string but no value is there the sequence will be empty. If the value is empty the the sequence contains an empty string.

    Examples

    Query StringMap
    ?param=vMap("param" -> Seq("v"))
    ?param=Map("param" -> Seq(""))
    ?paramMap("param" -> Seq())
    ?=valueMap("" -> Seq("value"))
    ?p1=v1&p1=v2&p2=v3&p2=v4Map("p1" -> Seq("v1","v2"), "p2" -> Seq("v3","v4"))

    The query string is lazily parsed. If an error occurs during parsing an empty Map is returned.

  42. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  43. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  44. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  45. def params: Map[String, String]

    View of the head elements of the URI parameters in query string.

    View of the head elements of the URI parameters in query string.

    In case a parameter has no value the map returns an empty string.

    See also

    multiParams

  46. lazy val pathInfo: Path
  47. def pathTranslated: Option[File]
  48. def productArity: Int
    Definition Classes
    Request → Product
  49. def productElement(n: Int): Any
    Definition Classes
    Request → Product
  50. def productIterator: Iterator[Any]
    Definition Classes
    Product
  51. def productPrefix: String
    Definition Classes
    Product
  52. def putHeaders(headers: ToRaw*): Self

    Add the provided headers to the existing headers, replacing those of the same header name

    Add the provided headers to the existing headers, replacing those of the same header name

    >>> import cats.effect.IO
    >>> import org.http4s.headers.Accept
    
    >>> val req = Request[IO]().putHeaders(Accept(MediaRange.`application/*`))
    >>> req.headers.get[Accept]
    Some(Accept(NonEmptyList(application/*)))
    
    >>> val req2 = req.putHeaders(Accept(MediaRange.`text/*`))
    >>> req2.headers.get[Accept]
    Some(Accept(NonEmptyList(text/*)))

    */*/*/*/

    Definition Classes
    Message
  53. def queryString: String
  54. def remote: Option[SocketAddress[IpAddress]]
  55. def remoteAddr: Option[IpAddress]
  56. def remoteHost(implicit F: Sync[F]): F[Option[Hostname]]
  57. def remotePort: Option[Port]
  58. def remoteUser: Option[String]
  59. def removeHeader[A](implicit h: Header[A, _]): Self
    Definition Classes
    Message
  60. def removeHeader(key: CIString): Self
    Definition Classes
    Message
  61. def requestPrelude: RequestPrelude

    A projection of this request without the body.

  62. lazy val scriptName: Path
  63. def server: Option[SocketAddress[IpAddress]]
  64. def serverAddr: Option[IpAddress]
  65. def serverPort: Option[Port]
  66. def serverSoftware: ServerSoftware
  67. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  68. def toStrict(implicit F: Sync[F]): F[Self]

    Compiles the body stream to a single chunk and sets it as the body.

    Compiles the body stream to a single chunk and sets it as the body. Replaces any Transfer-Encoding: chunked with a Content-Length header. It is the caller's responsibility to assure there is enough memory to materialize the body.

    Definition Classes
    Message
  69. def toString(): String
    Definition Classes
    Request → AnyRef → Any
  70. def trailerHeaders(implicit F: Applicative[F]): F[Headers]

    The trailer headers, as specified in Section 3.6.1 of RFC 2616.

    The trailer headers, as specified in Section 3.6.1 of RFC 2616. The resulting F might not complete until the entire body has been consumed.

    Definition Classes
    Message
  71. def transformHeaders(f: (Headers) ⇒ Headers): Self
    Definition Classes
    Message
  72. val uri: Uri
  73. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  74. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  75. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  76. def withAttribute[A](key: Key[A], value: A): Self

    Generates a new message object with the specified key/value pair appended to the attributes.

    Generates a new message object with the specified key/value pair appended to the attributes.

    A

    type of the value to store

    key

    org.typelevel.vault.Key with which to associate the value

    value

    value associated with the key

    returns

    a new message object with the key/value pair appended

    Definition Classes
    Message
  77. def withAttributes(attributes: Vault): Self
    Definition Classes
    Message
  78. def withBodyStream(body: EntityBody[F]): Self

    Sets the entity body without affecting headers such as Transfer-Encoding or Content-Length.

    Sets the entity body without affecting headers such as Transfer-Encoding or Content-Length. Most use cases are better served by withEntity, which uses an EntityEncoder to maintain the headers.

    Definition Classes
    Message
  79. def withContentLength(contentLength: Content-Length): Self

    Puts a Content-Length header, replacing any existing.

    Puts a Content-Length header, replacing any existing. Removes any existing chunked value from the Transfer-Encoding header. It is critical that the supplied content length accurately describe the length of the body stream.

    scala> import org.http4s.headers._
    scala> val chunked = Request().withHeaders(
         |   `Transfer-Encoding`(TransferCoding.chunked),
         |   `Content-Type`(MediaType.text.plain))
    scala> chunked.withContentLength(`Content-Length`.unsafeFromLong(1024)).headers
    res0: Headers = Headers(Content-Type: text/plain, Content-Length: 1024)
    
    scala> val chunkedGzipped = Request().withHeaders(
         |   `Transfer-Encoding`(TransferCoding.chunked, TransferCoding.gzip),
         |   `Content-Type`(MediaType.text.plain))
    scala> chunkedGzipped.withContentLength(`Content-Length`.unsafeFromLong(1024)).headers
    res1: Headers = Headers(Transfer-Encoding: gzip, Content-Type: text/plain, Content-Length: 1024)
    
    scala> val const = Request().withHeaders(
         |   `Content-Length`(2048),
         |   `Content-Type`(MediaType.text.plain))
    scala> const.withContentLength(`Content-Length`.unsafeFromLong(1024)).headers
    res1: Headers = Headers(Content-Type: text/plain, Content-Length: 1024)
    Definition Classes
    Message
  80. def withContentType(contentType: Content-Type): Self
    Definition Classes
    Message
  81. def withContentTypeOption(contentTypeO: Option[Content-Type]): Self
    Definition Classes
    Message
  82. def withEmptyBody: Self

    Set an empty entity body on this message, and remove all payload headers that make no sense with an empty body.

    Set an empty entity body on this message, and remove all payload headers that make no sense with an empty body.

    Definition Classes
    Message
  83. def withEntity[T](b: T)(implicit w: EntityEncoder[F, T]): Self

    Replace the body of this message with a new body

    Replace the body of this message with a new body

    T

    type of the Body

    b

    body to attach to this method

    w

    EntityEncoder with which to convert the body to an EntityBody

    returns

    a new message with the new body

    Definition Classes
    Message
  84. def withHeaders(headers: ToRaw*): Self
    Definition Classes
    Message
  85. def withHeaders(headers: Headers): Self
    Definition Classes
    Message
  86. def withHttpVersion(httpVersion: HttpVersion): Self
    Definition Classes
    Message
  87. def withMethod(method: Method): Request[F]
  88. def withPathInfo(pi: Path): Request[F]
  89. def withTrailerHeaders(trailerHeaders: F[Headers]): Self
    Definition Classes
    Message
  90. def withUri(uri: Uri): Request[F]
  91. def withoutAttribute(key: Key[_]): Self

    Returns a new message object without the specified key in the attributes.

    Returns a new message object without the specified key in the attributes.

    key

    org.typelevel.vault.Key to remove

    returns

    a new message object without the key

    Definition Classes
    Message
  92. def withoutContentType: Self
    Definition Classes
    Message
  93. def withoutTrailerHeaders: Self
    Definition Classes
    Message

Deprecated Value Members

  1. def withBody[T](b: T)(implicit F: Applicative[F], w: EntityEncoder[F, T]): F[Self]
    Definition Classes
    Message
    Annotations
    @deprecated
    Deprecated

    (Since version 0.19) Use withEntity

  2. def withPathInfo(pi: String): Request[F]
    Annotations
    @deprecated
    Deprecated

    (Since version 0.22.0-M1) Use {withPathInfo(Uri.Path)} instead

  3. def withType(t: MediaType)(implicit F: Functor[F]): Self
    Definition Classes
    Message
    Annotations
    @deprecated
    Deprecated

    (Since version 0.20.0-M2) Use withContentType(Content-Type(t)) instead

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Message[F]

Inherited from Media[F]

Inherited from AnyRef

Inherited from Any

Ungrouped