Represents a HTTP Message. The interesting subclasses are Request and Response.
- Companion:
- object
- Source:
- Message.scala
Type members
Types
Value members
Abstract methods
Concrete methods
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.
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/*)))
////*/
- Source:
- Message.scala
Lifts this Message's body to the specified effect type.
Lifts this Message's body to the specified effect type.
- Definition Classes
- Source:
- Message.scala
Keep headers that satisfy the predicate
Keep headers that satisfy the predicate
- Value parameters:
- f
predicate
- Returns:
a new message object which has only headers that satisfy the predicate
- Source:
- Message.scala
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/*)))
////
- Source:
- Message.scala
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 entity body and
control the time limits of that materialization.
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 entity body and
control the time limits of that materialization.
- Value parameters:
- maxBytes
maximum length of the entity stream. If the stream exceeds the limit then processing fails with the Message.EntityStreamException. Pass the scala.None if you don't want to limit the entity body.
- Source:
- Message.scala
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.
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.
- Source:
- Message.scala
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.
- Type parameters:
- A
type of the value to store
- Value parameters:
- 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
- Source:
- Message.scala
Sets the entity body without affecting headers such as Transfer-Encoding
or Content-Length
. Most use cases are better served by Some.apply[Content-Length](_$5)))
caseNone=>
None
}
valheaders$1:Headers=cl.fold[Headers](hsBase)(((contentLength:Content-Length)=>hsBase.withContentLength(contentLength)))
valhttpVersion$1:HttpVersion@uncheckedVariance=Message.this.change$default$1
valattributes$1:Vault@uncheckedVariance=Message.this.change$default$4
Message.this.change(httpVersion$1,body=entity.body,headers=headers$1,attributes$1)
}">withEntity,
which uses an EntityEncoder to maintain the headers.
Sets the entity body without affecting headers such as Transfer-Encoding
or Content-Length
. Most use cases are better served by Some.apply[Content-Length](_$5)))
caseNone=>
None
}
valheaders$1:Headers=cl.fold[Headers](hsBase)(((contentLength:Content-Length)=>hsBase.withContentLength(contentLength)))
valhttpVersion$1:HttpVersion@uncheckedVariance=Message.this.change$default$1
valattributes$1:Vault@uncheckedVariance=Message.this.change$default$4
Message.this.change(httpVersion$1,body=entity.body,headers=headers$1,attributes$1)
}">withEntity,
which uses an EntityEncoder to maintain the headers.
WARNING: this method does not modify the headers of the message, and as a consequence headers may be incoherent with the body.
- Source:
- Message.scala
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.
- Source:
- Message.scala
Replace the body of this message with a new body
Replace the body of this message with a new body
- Type parameters:
- T
type of the Body
- Value parameters:
- 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
- Source:
- Message.scala
Returns a new message object without the specified key in the attributes.
Returns a new message object without the specified key in the attributes.
- Value parameters:
- key
org.typelevel.vault.Key to remove
- Returns:
a new message object without the key
- Source:
- Message.scala
Inherited methods
Decode the Media to the specified type
- Type parameters:
- A
type of the result
- Value parameters:
- decoder
EntityDecoder used to decode the Media
- Returns:
the effect which will generate the A
- Inherited from:
- Media
- Source:
- Media.scala
Decode the Media to the specified type
Decode the Media to the specified type
- Type parameters:
- T
type of the result
- Value parameters:
- decoder
EntityDecoder used to decode the Media
- Returns:
the effect which will generate the
DecodeResult[T]
- Inherited from:
- Media
- Source:
- Media.scala