Interface HttpMessage

    • Method Detail

      • isRequest

        boolean isRequest()
        Description copied from interface: HttpMessage
        Is this instance a request.
        Specified by:
        isRequest in interface HttpMessage
      • isResponse

        boolean isResponse()
        Description copied from interface: HttpMessage
        Is this instance a response.
        Specified by:
        isResponse in interface HttpMessage
      • headers

        scala.collection.immutable.Seq<HttpHeader> headers()
      • attributes

        scala.collection.immutable.Map<AttributeKey<?>,​java.lang.Object> attributes()
      • discardEntityBytes

        HttpMessage.DiscardedEntity discardEntityBytes​(akka.stream.Materializer mat)
        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 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.

        Specified by:
        discardEntityBytes in interface HttpMessage
        Parameters:
        mat - (undocumented)
        Returns:
        (undocumented)
      • withHeaders

        HttpMessage withHeaders​(HttpHeader firstHeader,
                                scala.collection.immutable.Seq<HttpHeader> otherHeaders)
        Returns a copy of this message with the list of headers set to the given ones.
      • withHeaders

        HttpMessage withHeaders​(scala.collection.immutable.Seq<HttpHeader> headers)
        Returns a copy of this message with the list of headers set to the given ones.
      • withDefaultHeaders

        HttpMessage withDefaultHeaders​(HttpHeader firstHeader,
                                       scala.collection.immutable.Seq<HttpHeader> otherHeaders)
        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.
        Parameters:
        firstHeader - (undocumented)
        otherHeaders - (undocumented)
        Returns:
        (undocumented)
      • withDefaultHeaders

        HttpMessage withDefaultHeaders​(scala.collection.immutable.Seq<HttpHeader> defaultHeaders)
        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.
        Parameters:
        defaultHeaders - (undocumented)
        Returns:
        (undocumented)
      • withAttributes

        HttpMessage withAttributes​(scala.collection.immutable.Map<AttributeKey<?>,​java.lang.Object> headers)
        Returns a copy of this message with the attributes set to the given ones.
      • withEntity

        HttpMessage withEntity​(RequestEntity entity)
        Returns a copy of this message with the entity set to the given one.
      • toStrict

        scala.concurrent.Future<HttpMessage> toStrict​(scala.concurrent.duration.FiniteDuration timeout,
                                                      scala.concurrent.ExecutionContext ec,
                                                      akka.stream.Materializer fm)
        Returns a shareable and serializable copy of this message with a strict entity.
      • toStrict

        scala.concurrent.Future<HttpMessage> toStrict​(scala.concurrent.duration.FiniteDuration timeout,
                                                      long maxBytes,
                                                      scala.concurrent.ExecutionContext ec,
                                                      akka.stream.Materializer fm)
        Returns a shareable and serializable copy of this message with a strict entity.
      • withHeadersAndEntity

        HttpMessage withHeadersAndEntity​(scala.collection.immutable.Seq<HttpHeader> headers,
                                         RequestEntity entity)
        Returns a copy of this message with the entity and headers set to the given ones.
      • mapHeaders

        HttpMessage mapHeaders​(scala.Function1<scala.collection.immutable.Seq<HttpHeader>,​scala.collection.immutable.Seq<HttpHeader>> f)
        Returns a copy of this message with the list of headers transformed by the given function
      • mapAttributes

        HttpMessage mapAttributes​(scala.Function1<scala.collection.immutable.Map<AttributeKey<?>,​java.lang.Object>,​scala.collection.immutable.Map<AttributeKey<?>,​java.lang.Object>> f)
        Returns a copy of this message with the attributes transformed by the given function
      • encoding

        HttpEncoding encoding()
        The content encoding as specified by the Content-Encoding header. If no Content-Encoding header is present the default value 'identity' is returned.
        Returns:
        (undocumented)
      • header

        <T extends HttpHeader> scala.Option<T> header​(scala.reflect.ClassTag<T> evidence$1)
        Returns the first header of the given type if there is one

        Parameters:
        evidence$1 - (undocumented)
        Returns:
        (undocumented)
        Throws:
        java.lang.IllegalArgumentException - if headerClass is a custom header.
      • header

        scala.Option<HttpHeader> header​(java.lang.String headerName)
      • headers

        <T extends HttpHeader> scala.collection.immutable.Seq<T> headers​(scala.reflect.ClassTag<T> evidence$2)
        Returns all the headers of the given type
      • connectionCloseExpected

        boolean connectionCloseExpected()
        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
        Returns:
        (undocumented)
      • addHeader

        HttpMessage addHeader​(HttpHeader header)
        Return a new instance with the given header added to the headers sequence. It's undefined where the header is added to the sequence
      • removeHeader

        HttpMessage removeHeader​(java.lang.String headerName)
        Removes the header with the given name (case-insensitive)
      • withEntity

        HttpMessage withEntity​(java.lang.String string)
      • withEntity

        HttpMessage withEntity​(akka.util.ByteString bytes)
      • transformEntityDataBytes

        <M> HttpMessage transformEntityDataBytes​(akka.stream.Graph<akka.stream.FlowShape<akka.util.ByteString,​akka.util.ByteString>,​M> transformer)
      • getHeader

        <T extends HttpHeader> java.util.Optional<T> getHeader​(java.lang.Class<T> headerClass)
        Java API
        Specified by:
        getHeader in interface HttpMessage
      • getHeaders

        <T extends HttpHeader> java.lang.Iterable<T> getHeaders​(java.lang.Class<T> headerClass)
        Java API
        Specified by:
        getHeaders in interface HttpMessage
      • toStrict

        java.util.concurrent.CompletionStage<HttpMessage> toStrict​(long timeoutMillis,
                                                                   java.util.concurrent.Executor ec,
                                                                   akka.stream.Materializer materializer)
        Java API
      • toStrict

        java.util.concurrent.CompletionStage<HttpMessage> toStrict​(long timeoutMillis,
                                                                   long maxBytes,
                                                                   java.util.concurrent.Executor ec,
                                                                   akka.stream.Materializer materializer)
        Java API
      • toStrict

        java.util.concurrent.CompletionStage<HttpMessage> toStrict​(long timeoutMillis,
                                                                   akka.actor.ClassicActorSystemProvider system)
        Java API
      • toStrict

        java.util.concurrent.CompletionStage<HttpMessage> toStrict​(long timeoutMillis,
                                                                   long maxBytes,
                                                                   akka.actor.ClassicActorSystemProvider system)
        Java API