Interface HttpMessage
- All Superinterfaces:
HttpMessage
- All Known Implementing Classes:
HttpRequest
,HttpResponse
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final class
Represents the currently being-drained HTTP Entity which triggers completion of the contained Future once the entity has been drained for the given HttpMessage completely.static final class
Adds Scala DSL idiomatic methods toHttpMessage
, e.g. versions of methods with an implicitMaterializer
.static class
Nested classes/interfaces inherited from interface akka.http.javadsl.model.HttpMessage
HttpMessage.MessageTransformations<Self>
-
Method Summary
Modifier and TypeMethodDescription<T> HttpMessage
addAttribute
(AttributeKey<T> key, T value) addCredentials
(HttpCredentials credentials) addHeader
(HttpHeader header) Return a new instance with the given header added to the headers sequence.addHeaders
(Iterable<HttpHeader> headers) Java API<T> scala.Option<T>
attribute
(AttributeKey<T> key, JavaMapping<AttributeKey<T>, AttributeKey<T>> ev) scala.collection.immutable.Map<AttributeKey<?>,
Object> boolean
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 responsediscardEntityBytes
(akka.actor.ClassicActorSystemProvider system) Java APIdiscardEntityBytes
(akka.stream.Materializer mat) Discards the entities data bytes by running thedataBytes
Source contained in this HttpMessage.encoding()
The content encoding as specified by the Content-Encoding header.entity()
The entity of this message.<T> Optional<T>
getAttribute
(AttributeKey<T> attributeKey) Java API<T extends HttpHeader>
Optional<T>Java APIJava APIJava API<T extends HttpHeader>
Iterable<T>getHeaders
(Class<T> headerClass) Java API<T extends HttpHeader>
scala.Option<T>header
(scala.reflect.ClassTag<T> evidence$1) Returns the first header of the given type if there is onescala.collection.immutable.Seq<HttpHeader>
headers()
<T extends HttpHeader>
scala.collection.immutable.Seq<T>headers
(scala.reflect.ClassTag<T> evidence$2) Returns all the headers of the given typeboolean
Is this instance a request.boolean
Is this instance a response.mapAttributes
(scala.Function1<scala.collection.immutable.Map<AttributeKey<?>, Object>, scala.collection.immutable.Map<AttributeKey<?>, Object>> f) Returns a copy of this message with the attributes transformed by the given functionmapHeaders
(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 functionprotocol()
The protocol of this message.removeAttribute
(AttributeKey<?> key) removeHeader
(String headerName) Removes the header with the given name (case-insensitive)self()
toStrict
(long timeoutMillis, long maxBytes, akka.actor.ClassicActorSystemProvider system) Java APIJava APItoStrict
(long timeoutMillis, akka.actor.ClassicActorSystemProvider system) Java APIJava APIscala.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.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.<M> HttpMessage
transformEntityDataBytes
(akka.stream.Graph<akka.stream.FlowShape<akka.util.ByteString, akka.util.ByteString>, M> transformer) withAttributes
(scala.collection.immutable.Map<AttributeKey<?>, Object> headers) Returns a copy of this message with the attributes set to the given ones.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.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.withEntity
(byte[] bytes) withEntity
(ContentType.NonBinary contentType, String string) withEntity
(ContentType contentType, byte[] bytes) withEntity
(ContentType contentType, akka.util.ByteString bytes) withEntity
(ContentType contentType, File file) withEntity
(ContentType contentType, Path file) withEntity
(RequestEntity entity) Returns a copy of this message with the entity set to the given one.withEntity
(akka.util.ByteString bytes) withEntity
(String string) 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
(Iterable<HttpHeader> headers) Java APIwithHeaders
(scala.collection.immutable.Seq<HttpHeader> headers) Returns a copy of this message with the list of headers set to the given ones.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.
-
Method Details
-
self
HttpMessage self() -
isRequest
boolean isRequest()Description copied from interface:HttpMessage
Is this instance a request.- Specified by:
isRequest
in interfaceHttpMessage
-
isResponse
boolean isResponse()Description copied from interface:HttpMessage
Is this instance a response.- Specified by:
isResponse
in interfaceHttpMessage
-
headers
scala.collection.immutable.Seq<HttpHeader> headers() -
attributes
scala.collection.immutable.Map<AttributeKey<?>,Object> attributes() -
entity
ResponseEntity entity()Description copied from interface:HttpMessage
The entity of this message.- Specified by:
entity
in interfaceHttpMessage
-
protocol
HttpProtocol protocol()Description copied from interface:HttpMessage
The protocol of this message.- Specified by:
protocol
in interfaceHttpMessage
-
discardEntityBytes
Discards the entities data bytes by running thedataBytes
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 interfaceHttpMessage
- Parameters:
mat
- (undocumented)- Returns:
- (undocumented)
-
discardEntityBytes
Java API- Specified by:
discardEntityBytes
in interfaceHttpMessage
-
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
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
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
Returns a copy of this message with the attributes set to the given ones. -
withEntity
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<?>, Object>, scala.collection.immutable.Map<AttributeKey<?>, 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
Returns the first header of the given type if there is one -
headers
<T extends HttpHeader> scala.collection.immutable.Seq<T> headers(scala.reflect.ClassTag<T> evidence$2) Returns all the headers of the given type -
attribute
-
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
Return a new instance with the given header added to the headers sequence. It's undefined where the header is added to the sequence -
addAttribute
-
addCredentials
-
removeHeader
Removes the header with the given name (case-insensitive) -
removeAttribute
-
withEntity
-
withEntity
-
withEntity
-
withEntity
-
withEntity
-
withEntity
-
withEntity
-
withEntity
-
transformEntityDataBytes
<M> HttpMessage transformEntityDataBytes(akka.stream.Graph<akka.stream.FlowShape<akka.util.ByteString, akka.util.ByteString>, M> transformer) -
getHeaders
Iterable<HttpHeader> getHeaders()Java API- Specified by:
getHeaders
in interfaceHttpMessage
-
getHeader
Java API- Specified by:
getHeader
in interfaceHttpMessage
-
getHeaders
Java API- Specified by:
getHeaders
in interfaceHttpMessage
-
getHeader
Java API- Specified by:
getHeader
in interfaceHttpMessage
-
addHeaders
Java API -
withHeaders
Java API -
getAttribute
Java API- Specified by:
getAttribute
in interfaceHttpMessage
-
toStrict
CompletionStage<HttpMessage> toStrict(long timeoutMillis, Executor ec, akka.stream.Materializer materializer) Java API -
toStrict
CompletionStage<HttpMessage> toStrict(long timeoutMillis, long maxBytes, Executor ec, akka.stream.Materializer materializer) Java API -
toStrict
CompletionStage<HttpMessage> toStrict(long timeoutMillis, akka.actor.ClassicActorSystemProvider system) Java API -
toStrict
CompletionStage<HttpMessage> toStrict(long timeoutMillis, long maxBytes, akka.actor.ClassicActorSystemProvider system) Java API
-