case class Response(status: Int, content: Content = Content.empty, headers: Map[HttpString, HttpString] = Map.empty, upgradeConnection: (Stream[Task, Byte]) ⇒ Stream[Task, Byte] = _ => Stream.empty) extends FutureLikeResponse with Product with Serializable
An HTTP response.
Represent all the data available in the HTTP response headers, and the response content that can be consumed lazily if needed.
A response can be used to upgrade the HTTP connection to a plain TCP connection. As a server, when you create a response to accept the connection upgrade you must provide this function. It will be called if the client decide to continue and to upgrade the connection. In this case you will receive the upstream as parameter and you have to return the downstream.
If, as a client you receive a 101 response, you can call this function by providing the upstream. In return you will get the downstream.
- status
the HTTP response code such as
200
or404
.- content
the response content.
- headers
the HTTP headers.
- upgradeConnection
a function that will be called to upgrade the connection to a plain TCP connection.
- Alphabetic
- By Inheritance
- Response
- Serializable
- Serializable
- Product
- Equals
- FutureLikeResponse
- Future
- Awaitable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
Response(status: Int, content: Content = Content.empty, headers: Map[HttpString, HttpString] = Map.empty, upgradeConnection: (Stream[Task, Byte]) ⇒ Stream[Task, Byte] = _ => Stream.empty)
- status
the HTTP response code such as
200
or404
.- content
the response content.
- headers
the HTTP headers.
- upgradeConnection
a function that will be called to upgrade the connection to a plain TCP connection.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addHeaders(headers: (HttpString, HttpString)*): Response
Add some headers to this response.
Add some headers to this response.
- headers
the new headers to add.
- returns
a copy of the response with the new headers added.
-
def
addHeaders(headers: Map[HttpString, HttpString]): Response
Add some headers to this response.
Add some headers to this response.
- headers
the new headers to add.
- returns
a copy of the response with the new headers added.
-
def
andThen[U](pf: PartialFunction[Try[Response], U])(implicit executor: ExecutionContext): Future[Response]
- Definition Classes
- Future
-
def
apply[A](content: A)(implicit encoder: ContentEncoder[A]): Response
Set the content of this response.
Set the content of this response.
- content
the content to use for this response.
- encoder
the ContentEncoder to use to encode this content.
- returns
a copy of this response with a new content.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
assertSuccess: Future[Unit]
Return a successful empty future if the response status is in the Success 2xx range.
Return a successful empty future if the response status is in the Success 2xx range. Otherwise, it consumes the response as String and report the error as a failed future.
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
collect[S](pf: PartialFunction[Response, S])(implicit executor: ExecutionContext): Future[S]
- Definition Classes
- Future
- val content: Content
-
def
drain: Future[Unit]
Drain the content attached to this response.
Drain the content attached to this response. It is safe to call this operation even if the stream has already been consumed.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
failed: Future[Throwable]
- Definition Classes
- Future
-
def
fallbackTo[U >: Response](that: Future[U]): Future[U]
- Definition Classes
- Future
-
def
filter(p: (Response) ⇒ Boolean)(implicit executor: ExecutionContext): Future[Response]
- Definition Classes
- Future
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
flatMap[S](f: (Response) ⇒ Future[S])(implicit executor: ExecutionContext): Future[S]
- Definition Classes
- Future
-
def
flatten[S](implicit ev: <:<[Response, Future[S]]): Future[S]
- Definition Classes
- Future
-
def
foreach[U](f: (Response) ⇒ U)(implicit executor: ExecutionContext): Unit
- Definition Classes
- Future
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- val headers: Map[HttpString, HttpString]
-
def
isCompleted: Boolean
- Definition Classes
- FutureLikeResponse → Future
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isRedirect: Boolean
- returns
true is this HTTP response is a redirect.
-
def
map[S](f: (Response) ⇒ S)(implicit executor: ExecutionContext): Future[S]
- Definition Classes
- Future
-
def
mapTo[S](implicit tag: ClassTag[S]): Future[S]
- Definition Classes
- Future
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
onComplete[U](f: (Try[Response]) ⇒ U)(implicit executor: ExecutionContext): Unit
- Definition Classes
- FutureLikeResponse → Future
-
def
read[A](effect: (Stream[Task, Byte]) ⇒ Task[A]): Future[A]
Consume the content attached to this response by evaluating the provided effect function.
Consume the content attached to this response by evaluating the provided effect function.
- effect
the function to use to consume the stream.
- returns
eventually a value of type
A
.
-
def
readAs[A](implicit decoder: ContentDecoder[A]): Future[A]
Consume the content attached to this response and eventually produces a value of type
A
.Consume the content attached to this response and eventually produces a value of type
A
.- decoder
the ContentDecoder to use to read the content.
- returns
eventually a value of type
A
.
-
def
readSuccess[A](effect: (Stream[Task, Byte]) ⇒ Task[A]): Future[A]
Consume the content attached to this response by evaluating the provided effect function the status is in the Success 2xx range.
Consume the content attached to this response by evaluating the provided effect function the status is in the Success 2xx range. Otherwise, it consumes the response as String and report the error as a failed future.
- effect
the function to use to consume the stream.
- returns
eventually a value of type
A
or a failure if the status code was not 2xx.
-
def
readSuccessAs[A](implicit decoder: ContentDecoder[A]): Future[A]
Consume the content attached to this response if the status is in the Success 2xx range.
Consume the content attached to this response if the status is in the Success 2xx range. Otherwise, it consumes the response as String and report the error as a failed future.
- decoder
the ContentDecoder to use to read the content.
- returns
eventually a value of type
A
or a failure if the status code was not 2xx.
-
def
ready(atMost: Duration)(implicit permit: CanAwait): Response.this.type
- Definition Classes
- FutureLikeResponse → Awaitable
-
def
recover[U >: Response](pf: PartialFunction[Throwable, U])(implicit executor: ExecutionContext): Future[U]
- Definition Classes
- Future
-
def
recoverWith[U >: Response](pf: PartialFunction[Throwable, Future[U]])(implicit executor: ExecutionContext): Future[U]
- Definition Classes
- Future
-
def
removeHeaders(headerNames: HttpString*): Response
Remove some headers from this response.
Remove some headers from this response.
- headerNames
the header names to remove
- returns
a copy of the response without the removed headers.
-
def
result(atMost: Duration)(implicit permit: CanAwait): Response
- Definition Classes
- FutureLikeResponse → Awaitable
- val status: Int
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
transform[S](f: (Try[Response]) ⇒ Try[S])(implicit executor: ExecutionContext): Future[S]
- Definition Classes
- FutureLikeResponse → Future
-
def
transform[S](s: (Response) ⇒ S, f: (Throwable) ⇒ Throwable)(implicit executor: ExecutionContext): Future[S]
- Definition Classes
- Future
-
def
transformWith[S](f: (Try[Response]) ⇒ Future[S])(implicit executor: ExecutionContext): Future[S]
- Definition Classes
- FutureLikeResponse → Future
- val upgradeConnection: (Stream[Task, Byte]) ⇒ Stream[Task, Byte]
-
def
value: Option[Try[Response]]
- Definition Classes
- FutureLikeResponse → Future
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
withFilter(p: (Response) ⇒ Boolean)(implicit executor: ExecutionContext): Future[Response]
- Definition Classes
- Future
-
def
zip[U](that: Future[U]): Future[(Response, U)]
- Definition Classes
- Future
-
def
zipWith[U, R](that: Future[U])(f: (Response, U) ⇒ R)(implicit executor: ExecutionContext): Future[R]
- Definition Classes
- Future
Deprecated Value Members
-
def
onFailure[U](pf: PartialFunction[Throwable, U])(implicit executor: ExecutionContext): Unit
- Definition Classes
- Future
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.0) use
onComplete
orfailed.foreach
instead (keep in mind that they take total rather than partial functions)
-
def
onSuccess[U](pf: PartialFunction[Response, U])(implicit executor: ExecutionContext): Unit
- Definition Classes
- Future
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.0) use
foreach
oronComplete
instead (keep in mind that they take total rather than partial functions)