sealed trait HttpMessage extends javadsl.model.HttpMessage

Common base class of HttpRequest and HttpResponse.

Source
HttpMessage.scala
Known Subclasses
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HttpMessage
  2. HttpMessage
  3. AnyRef
  4. Any
Implicitly
  1. by HttpMessageScalaDSLSugar
  2. by any2stringadd
  3. by StringFormat
  4. by Ensuring
  5. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract type Self <: HttpMessage { type Self = HttpMessage.this.Self }

Abstract Value Members

  1. abstract def attributes: Map[AttributeKey[_], _]
  2. abstract def entity(): ResponseEntity

    The entity of this message.

    The entity of this message.

    Definition Classes
    HttpMessageHttpMessage
  3. abstract def headers: Seq[HttpHeader]
  4. abstract def isRequest(): Boolean

    Is this instance a request.

    Is this instance a request.

    Definition Classes
    HttpMessageHttpMessage
  5. abstract def isResponse(): Boolean

    Is this instance a response.

    Is this instance a response.

    Definition Classes
    HttpMessageHttpMessage
  6. abstract def protocol(): HttpProtocol

    The protocol of this message.

    The protocol of this message.

    Definition Classes
    HttpMessageHttpMessage
  7. abstract def self: Self
  8. abstract def transformEntityDataBytes[M](transformer: Graph[FlowShape[ByteString, ByteString], M]): Self
  9. abstract def withAttributes(headers: Map[AttributeKey[_], _]): Self

    Returns a copy of this message with the attributes set to the given ones.

  10. abstract def withEntity(entity: MessageEntity): Self

    Returns a copy of this message with the entity set to the given one.

  11. abstract def withHeaders(headers: Seq[HttpHeader]): Self

    Returns a copy of this message with the list of headers set to the given ones.

  12. abstract def withHeadersAndEntity(headers: Seq[HttpHeader], entity: MessageEntity): Self

    Returns a copy of this message with the entity and headers set to the given ones.

Concrete Value Members

  1. def addAttribute[T](key: javadsl.model.AttributeKey[T], value: T): Self
  2. def addCredentials(credentials: HttpCredentials): Self
  3. def addHeader(header: javadsl.model.HttpHeader): Self

    Return a new instance with the given header added to the headers sequence.

    Return a new instance with the given header added to the headers sequence. It's undefined where the header is added to the sequence

  4. def addHeaders(headers: Iterable[javadsl.model.HttpHeader]): Self

    Java API

  5. def attribute[T](key: javadsl.model.AttributeKey[T])(implicit ev: JavaMapping[javadsl.model.AttributeKey[T], AttributeKey[T]]): Option[T]
  6. def connectionCloseExpected: Boolean

    Returns true if this message is an:

    Returns true if this message is an:

    • HttpRequest and the client does not want to reuse the connection after the response for this request has been received
    • HttpResponse and the server will close the connection after this response
  7. def discardEntityBytes(system: ClassicActorSystemProvider): DiscardedEntity

    Java API

    Java API

    Definition Classes
    HttpMessageHttpMessage
  8. def discardEntityBytes(mat: Materializer): DiscardedEntity

    Discards the entities data bytes by running the dataBytes Source contained in this HttpMessage.

    Discards the entities data bytes by running the dataBytes Source contained in this HttpMessage.

    Note: It is crucial that entities are either discarded, or consumed by running the underlying akka.stream.scaladsl.Source as otherwise the lack of consuming of the data will trigger back-pressure to the underlying TCP connection (as designed), however possibly leading to an idle-timeout that will close the connection, instead of just having ignored the data.

    Warning: It is not allowed to discard and/or consume the entity.dataBytes more than once as the stream is directly attached to the "live" incoming data source from the underlying TCP connection. Allowing it to be consumable twice would require buffering the incoming data, thus defeating the purpose of its streaming nature. If the dataBytes source is materialized a second time, it will fail with an "stream can cannot be materialized more than once" exception.

    When called on Strict entities or sources whose values can be buffered in memory, the above warnings can be ignored. Repeated materialization is not necessary in this case, avoiding the mentioned exceptions due to the data being held in memory.

    In future versions, more automatic ways to warn or resolve these situations may be introduced, see issue #18716.

    Definition Classes
    HttpMessageHttpMessage
  9. def encoding: HttpEncoding

    The content encoding as specified by the Content-Encoding header.

    The content encoding as specified by the Content-Encoding header. If no Content-Encoding header is present the default value 'identity' is returned.

  10. def getAttribute[T](attributeKey: javadsl.model.AttributeKey[T]): Optional[T]

    Java API

    Java API

    Definition Classes
    HttpMessageHttpMessage
  11. def getHeader(headerName: String): Optional[javadsl.model.HttpHeader]

    Java API

    Java API

    Definition Classes
    HttpMessageHttpMessage
  12. def getHeader[T <: javadsl.model.HttpHeader](headerClass: Class[T]): Optional[T]

    Java API

    Java API

    Definition Classes
    HttpMessageHttpMessage
  13. def getHeaders[T <: javadsl.model.HttpHeader](headerClass: Class[T]): Iterable[T]

    Java API

    Java API

    Definition Classes
    HttpMessageHttpMessage
  14. def getHeaders(): Iterable[javadsl.model.HttpHeader]

    Java API

    Java API

    Definition Classes
    HttpMessageHttpMessage
  15. def header[T >: Null <: javadsl.model.HttpHeader](implicit arg0: ClassTag[T]): Option[T]

    Returns the first header of the given type if there is one

  16. def headers[T <: javadsl.model.HttpHeader](implicit arg0: ClassTag[T]): Seq[T]

    Returns all the headers of the given type *

  17. val httpMessage: HttpMessage
    Implicit
    This member is added by an implicit conversion from HttpMessage toHttpMessageScalaDSLSugar performed by method HttpMessageScalaDSLSugar in akka.http.scaladsl.model.HttpMessage.
    Definition Classes
    HttpMessageScalaDSLSugar
  18. def mapAttributes(f: (Map[AttributeKey[_], _]) => Map[AttributeKey[_], _]): Self

    Returns a copy of this message with the attributes transformed by the given function

  19. def mapHeaders(f: (Seq[HttpHeader]) => Seq[HttpHeader]): Self

    Returns a copy of this message with the list of headers transformed by the given function

  20. def removeAttribute(key: javadsl.model.AttributeKey[_]): Self
  21. def removeHeader(headerName: String): Self

    Removes the header with the given name (case-insensitive)

  22. def toStrict(timeoutMillis: Long, maxBytes: Long, system: ClassicActorSystemProvider): CompletionStage[Self]

    Java API

  23. def toStrict(timeoutMillis: Long, system: ClassicActorSystemProvider): CompletionStage[Self]

    Java API

  24. def toStrict(timeoutMillis: Long, maxBytes: Long, ec: Executor, materializer: Materializer): CompletionStage[Self]

    Java API

  25. def toStrict(timeoutMillis: Long, ec: Executor, materializer: Materializer): CompletionStage[Self]

    Java API

  26. def toStrict(timeout: FiniteDuration, maxBytes: Long)(implicit ec: ExecutionContext, fm: Materializer): Future[Self]

    Returns a shareable and serializable copy of this message with a strict entity.

  27. def toStrict(timeout: FiniteDuration)(implicit ec: ExecutionContext, fm: Materializer): Future[Self]

    Returns a shareable and serializable copy of this message with a strict entity.

  28. def withDefaultHeaders(firstHeader: HttpHeader, otherHeaders: HttpHeader*): Self
  29. def withDefaultHeaders(defaultHeaders: Seq[HttpHeader]): Self

    Returns a new message that contains all of the given default headers which didn't already exist (by case-insensitive header name) in this message.

  30. def withEntity(contentType: javadsl.model.ContentType, file: Path): Self
  31. def withEntity(contentType: javadsl.model.ContentType, file: File): Self
  32. def withEntity(contentType: javadsl.model.ContentType, bytes: ByteString): Self
  33. def withEntity(contentType: javadsl.model.ContentType, bytes: Array[Byte]): Self
  34. def withEntity(contentType: NonBinary, string: String): Self
  35. def withEntity(bytes: ByteString): Self
  36. def withEntity(bytes: Array[Byte]): Self
  37. def withEntity(string: String): Self
  38. def withHeaders(firstHeader: HttpHeader, otherHeaders: HttpHeader*): Self
  39. def withHeaders(headers: Iterable[javadsl.model.HttpHeader]): Self

    Java API

Shadowed Implicit Value Members

  1. def discardEntityBytes()(implicit mat: Materializer): DiscardedEntity

    Discards the entities data bytes by running the dataBytes Source contained by the entity of this HTTP message.

    Discards the entities data bytes by running the dataBytes Source contained by the entity of this HTTP message.

    Note: It is crucial that entities are either discarded, or consumed by running the underlying akka.stream.scaladsl.Source as otherwise the lack of consuming of the data will trigger back-pressure to the underlying TCP connection (as designed), however possibly leading to an idle-timeout that will close the connection, instead of just having ignored the data.

    Warning: It is not allowed to discard and/or consume the entity.dataBytes more than once as the stream is directly attached to the "live" incoming data source from the underlying TCP connection. Allowing it to be consumable twice would require buffering the incoming data, thus defeating the purpose of its streaming nature. If the dataBytes source is materialized a second time, it will fail with an "stream can cannot be materialized more than once" exception.

    When called on Strict entities or sources whose values can be buffered in memory, the above warnings can be ignored. Repeated materialization is not necessary in this case, avoiding the mentioned exceptions due to the data being held in memory.

    In future versions, more automatic ways to warn or resolve these situations may be introduced, see issue #18716.

    Implicit
    This member is added by an implicit conversion from HttpMessage toHttpMessageScalaDSLSugar performed by method HttpMessageScalaDSLSugar in akka.http.scaladsl.model.HttpMessage.
    Shadowing
    This implicitly inherited member is shadowed by one or more members in this class.
    To access this member you can use a type ascription:
    (httpMessage: HttpMessageScalaDSLSugar).discardEntityBytes()(mat)
    Definition Classes
    HttpMessageScalaDSLSugar