public class HttpExt extends java.lang.Object implements akka.actor.Extension, DefaultSSLContextCreation
Constructor and Description |
---|
HttpExt(com.typesafe.config.Config config,
akka.actor.ActorSystem system) |
Modifier and Type | Method and Description |
---|---|
akka.stream.scaladsl.Source<Http.IncomingConnection,scala.concurrent.Future<Http.ServerBinding>> |
bind(java.lang.String interface_,
int port,
ConnectionContext connectionContext,
ServerSettings settings,
akka.event.LoggingAdapter log)
Creates a
Source of Http.IncomingConnection instances which represents a prospective HTTP server binding
on the given endpoint . |
akka.stream.scaladsl.Source<Http.IncomingConnection,scala.concurrent.Future<Http.ServerBinding>> |
bind(java.lang.String interface_,
int port,
ConnectionContext connectionContext,
ServerSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Deprecated.
Binary compatibility method. Use the new `bind` method without the implicit materializer instead. Since 10.0.11.
|
scala.concurrent.Future<Http.ServerBinding> |
bindAndHandle(akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,java.lang.Object> handler,
java.lang.String interface_,
int port,
ConnectionContext connectionContext,
ServerSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Convenience method which starts a new HTTP server at the given endpoint and uses the given
handler
Flow for processing all incoming connections. |
scala.concurrent.Future<Http.ServerBinding> |
bindAndHandleAsync(scala.Function1<HttpRequest,scala.concurrent.Future<HttpResponse>> handler,
java.lang.String interface_,
int port,
ConnectionContext connectionContext,
ServerSettings settings,
int parallelism,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Convenience method which starts a new HTTP server at the given endpoint and uses the given
handler
Flow for processing all incoming connections. |
scala.concurrent.Future<Http.ServerBinding> |
bindAndHandleSync(scala.Function1<HttpRequest,HttpResponse> handler,
java.lang.String interface_,
int port,
ConnectionContext connectionContext,
ServerSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Convenience method which starts a new HTTP server at the given endpoint and uses the given
handler
Flow for processing all incoming connections. |
akka.stream.scaladsl.Source<Http.IncomingConnection,scala.concurrent.Future<Http.ServerBinding>> |
bindImpl(java.lang.String interface_,
int port,
ConnectionContext connectionContext,
ServerSettings settings,
akka.event.LoggingAdapter log)
Dummy method to disambiguate internal usages of
bind . |
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
cachedHostConnectionPool(java.lang.String host,
int port,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log)
Returns a
Flow which dispatches incoming HTTP requests to the per-ActorSystem pool of outgoing
HTTP connections to the given target host endpoint. |
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
cachedHostConnectionPool(java.lang.String host,
int port,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Deprecated.
Deprecated in favor of method without implicit materializer. Since 10.0.11.
|
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
cachedHostConnectionPoolHttps(java.lang.String host,
int port,
HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log)
Same as
cachedHostConnectionPool(java.lang.String, int, akka.http.scaladsl.settings.ConnectionPoolSettings, akka.event.LoggingAdapter) but for encrypted (HTTPS) connections. |
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
cachedHostConnectionPoolHttps(java.lang.String host,
int port,
HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Deprecated.
Deprecated in favor of method without implicit materializer. Since 10.0.11.
|
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
cachedHostConnectionPoolHttpsImpl(java.lang.String host,
int port,
HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log) |
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
cachedHostConnectionPoolImpl(java.lang.String host,
int port,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log) |
akka.stream.scaladsl.BidiFlow<HttpRequest,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpResponse,akka.NotUsed> |
clientLayer(Host hostHeader)
Constructs a
akka.http.scaladsl.Http.ClientLayer stage using the configured default ClientConnectionSettings ,
configured using the akka.http.client config section. |
akka.stream.scaladsl.BidiFlow<HttpRequest,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpResponse,akka.NotUsed> |
clientLayer(Host hostHeader,
ClientConnectionSettings settings,
akka.event.LoggingAdapter log)
Constructs a
akka.http.scaladsl.Http.ClientLayer stage using the given ClientConnectionSettings . |
HttpsConnectionContext |
defaultClientHttpsContext()
Gets the current default client-side
HttpsConnectionContext . |
ConnectionContext |
defaultServerHttpContext()
Gets the current default server-side
ConnectionContext – defaults to plain HTTP. |
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
newHostConnectionPool(HostConnectionPoolSetup setup,
akka.stream.Materializer fm)
INTERNAL API
|
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
newHostConnectionPool(java.lang.String host,
int port,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Starts a new connection pool to the given host and configuration and returns a
Flow which dispatches
the requests from all its materializations across this pool. |
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> |
newHostConnectionPoolHttps(java.lang.String host,
int port,
HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Same as
newHostConnectionPool(java.lang.String, int, akka.http.scaladsl.settings.ConnectionPoolSettings, akka.event.LoggingAdapter, akka.stream.Materializer) but for encrypted (HTTPS) connections. |
akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,scala.concurrent.Future<Http.OutgoingConnection>> |
outgoingConnection(java.lang.String host,
int port,
scala.Option<java.net.InetSocketAddress> localAddress,
ClientConnectionSettings settings,
akka.event.LoggingAdapter log)
Creates a
Flow representing a prospective HTTP client connection to the given endpoint. |
akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,scala.concurrent.Future<Http.OutgoingConnection>> |
outgoingConnectionHttps(java.lang.String host,
int port,
HttpsConnectionContext connectionContext,
scala.Option<java.net.InetSocketAddress> localAddress,
ClientConnectionSettings settings,
akka.event.LoggingAdapter log)
Same as
outgoingConnection(java.lang.String, int, scala.Option<java.net.InetSocketAddress>, akka.http.scaladsl.settings.ClientConnectionSettings, akka.event.LoggingAdapter) but for encrypted (HTTPS) connections. |
akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,scala.concurrent.Future<Http.OutgoingConnection>> |
outgoingConnectionUsingTransport(java.lang.String host,
int port,
ClientTransport transport,
ConnectionContext connectionContext,
ClientConnectionSettings settings,
akka.event.LoggingAdapter log)
Similar to
outgoingConnection but allows to specify a user-defined transport layer to run the connection on. |
scala.concurrent.Future<java.lang.Object> |
poolSize()
INTERNAL API
|
akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> |
serverLayer(akka.stream.Materializer mat)
Deprecated.
Binary compatibility method. Use the new `serverLayer` method without the implicit materializer instead. Since 10.0.11.
|
akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> |
serverLayer(ServerSettings settings,
scala.Option<java.net.InetSocketAddress> remoteAddress,
akka.event.LoggingAdapter log,
boolean isSecureConnection)
Constructs a
akka.http.scaladsl.Http.ServerLayer stage using the given ServerSettings . |
akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> |
serverLayer(ServerSettings settings,
scala.Option<java.net.InetSocketAddress> remoteAddress,
akka.event.LoggingAdapter log,
boolean isSecureConnection,
akka.stream.Materializer mat)
Deprecated.
Binary compatibility method. Use the new `serverLayer` method without the implicit materializer instead. Since 10.0.11.
|
akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> |
serverLayer(ServerSettings settings,
scala.Option<java.net.InetSocketAddress> remoteAddress,
akka.event.LoggingAdapter log,
akka.stream.Materializer mat)
Deprecated.
Binary compatibility method. Invocations should (automatically) use overloaded variant with default parameters. Since 10.0.11.
|
akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> |
serverLayerImpl(ServerSettings settings,
scala.Option<java.net.InetSocketAddress> remoteAddress,
akka.event.LoggingAdapter log,
boolean isSecureConnection)
Dummy method to disambiguate internal usages of serverLayer.
|
void |
setDefaultClientHttpsContext(HttpsConnectionContext context)
Sets the default client-side
HttpsConnectionContext . |
void |
setDefaultServerHttpContext(ConnectionContext context)
Sets the default server-side
ConnectionContext . |
scala.concurrent.Future<scala.runtime.BoxedUnit> |
shutdownAllConnectionPools()
Triggers an orderly shutdown of all host connections pools currently maintained by the
ActorSystem . |
scala.concurrent.Future<HttpResponse> |
singleRequest(HttpRequest request,
HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log)
Fires a single
HttpRequest across the (cached) host connection pool for the request's
effective URI to produce a response future. |
scala.concurrent.Future<HttpResponse> |
singleRequest(HttpRequest request,
HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Deprecated.
Deprecated in favor of method without implicit materializer. Since 10.0.11.
|
scala.concurrent.Future<HttpResponse> |
singleRequestImpl(HttpRequest request,
HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log)
Dummy method to disambiguate internal usages of new singleRequest.
|
<T> scala.Tuple2<scala.concurrent.Future<WebSocketUpgradeResponse>,T> |
singleWebSocketRequest(WebSocketRequest request,
akka.stream.scaladsl.Flow<Message,Message,T> clientFlow,
ConnectionContext connectionContext,
scala.Option<java.net.InetSocketAddress> localAddress,
ClientConnectionSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer mat)
Runs a single WebSocket conversation given a Uri and a flow that represents the client side of the
WebSocket conversation.
|
com.typesafe.sslconfig.akka.AkkaSSLConfig |
sslConfig() |
akka.stream.scaladsl.BidiFlow<akka.stream.TLSProtocol.SslTlsOutbound,akka.util.ByteString,akka.util.ByteString,akka.stream.TLSProtocol.SslTlsInbound,akka.NotUsed> |
sslTlsStage(ConnectionContext connectionContext,
akka.stream.TLSRole role,
scala.Option<scala.Tuple2<java.lang.String,java.lang.Object>> hostInfo)
Creates real or placebo SslTls stage based on if ConnectionContext is HTTPS or not.
|
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,akka.NotUsed> |
superPool(HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log)
Creates a new "super connection pool flow", which routes incoming requests to a (cached) host connection pool
depending on their respective effective URIs.
|
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,akka.NotUsed> |
superPool(HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log,
akka.stream.Materializer fm)
Deprecated.
Deprecated in favor of method without implicit materializer. Since 10.0.11.
|
<T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,akka.NotUsed> |
superPoolImpl(HttpsConnectionContext connectionContext,
ConnectionPoolSettings settings,
akka.event.LoggingAdapter log) |
akka.actor.ActorSystem |
system() |
akka.stream.scaladsl.Flow<Message,Message,scala.concurrent.Future<WebSocketUpgradeResponse>> |
webSocketClientFlow(WebSocketRequest request,
ConnectionContext connectionContext,
scala.Option<java.net.InetSocketAddress> localAddress,
ClientConnectionSettings settings,
akka.event.LoggingAdapter log)
Constructs a flow that once materialized establishes a WebSocket connection to the given Uri.
|
akka.stream.scaladsl.BidiFlow<Message,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,Message,scala.concurrent.Future<WebSocketUpgradeResponse>> |
webSocketClientLayer(WebSocketRequest request,
ClientConnectionSettings settings,
akka.event.LoggingAdapter log)
Constructs a
akka.http.scaladsl.Http.WebSocketClientLayer stage using the configured default ClientConnectionSettings ,
configured using the akka.http.client config section. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createClientHttpsContext, createDefaultClientHttpsContext, createServerHttpsContext, log, validateAndWarnAboutLooseSettings
public HttpExt(com.typesafe.config.Config config, akka.actor.ActorSystem system)
public akka.stream.scaladsl.Source<Http.IncomingConnection,scala.concurrent.Future<Http.ServerBinding>> bind(java.lang.String interface_, int port, ConnectionContext connectionContext, ServerSettings settings, akka.event.LoggingAdapter log)
Source
of Http.IncomingConnection
instances which represents a prospective HTTP server binding
on the given endpoint
.
If the given port is 0 the resulting source can be materialized several times. Each materialization will
then be assigned a new local port by the operating system, which can then be retrieved by the materialized
Http.ServerBinding
.
If the given port is non-zero subsequent materialization attempts of the produced source will immediately
fail, unless the first materialization has already been unbound. Unbinding can be triggered via the materialized
Http.ServerBinding
.
If an ConnectionContext
is given it will be used for setting up TLS encryption on the binding.
Otherwise the binding will be unencrypted.
If no port
is explicitly given (or the port value is negative) the protocol's default port will be used,
which is 80 for HTTP and 443 for HTTPS.
To configure additional settings for a server started using this method,
use the akka.http.server
config section or pass in a ServerSettings
explicitly.
interface_
- (undocumented)port
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)public akka.stream.scaladsl.Source<Http.IncomingConnection,scala.concurrent.Future<Http.ServerBinding>> bind(java.lang.String interface_, int port, ConnectionContext connectionContext, ServerSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
public scala.concurrent.Future<Http.ServerBinding> bindAndHandle(akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,java.lang.Object> handler, java.lang.String interface_, int port, ConnectionContext connectionContext, ServerSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
handler
Flow
for processing all incoming connections.
The number of concurrently accepted connections can be configured by overriding
the akka.http.server.max-connections
setting. Please see the documentation in the reference.conf for more
information about what kind of guarantees to expect.
To configure additional settings for a server started using this method,
use the akka.http.server
config section or pass in a ServerSettings
explicitly.
handler
- (undocumented)interface_
- (undocumented)port
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)fm
- (undocumented)public scala.concurrent.Future<Http.ServerBinding> bindAndHandleAsync(scala.Function1<HttpRequest,scala.concurrent.Future<HttpResponse>> handler, java.lang.String interface_, int port, ConnectionContext connectionContext, ServerSettings settings, int parallelism, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
handler
Flow
for processing all incoming connections.
The number of concurrently accepted connections can be configured by overriding
the akka.http.server.max-connections
setting. Please see the documentation in the reference.conf for more
information about what kind of guarantees to expect.
To configure additional settings for a server started using this method,
use the akka.http.server
config section or pass in a ServerSettings
explicitly.
handler
- (undocumented)interface_
- (undocumented)port
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)parallelism
- (undocumented)log
- (undocumented)fm
- (undocumented)public scala.concurrent.Future<Http.ServerBinding> bindAndHandleSync(scala.Function1<HttpRequest,HttpResponse> handler, java.lang.String interface_, int port, ConnectionContext connectionContext, ServerSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
handler
Flow
for processing all incoming connections.
The number of concurrently accepted connections can be configured by overriding
the akka.http.server.max-connections
setting. Please see the documentation in the reference.conf for more
information about what kind of guarantees to expect.
To configure additional settings for a server started using this method,
use the akka.http.server
config section or pass in a ServerSettings
explicitly.
handler
- (undocumented)interface_
- (undocumented)port
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)fm
- (undocumented)public akka.stream.scaladsl.Source<Http.IncomingConnection,scala.concurrent.Future<Http.ServerBinding>> bindImpl(java.lang.String interface_, int port, ConnectionContext connectionContext, ServerSettings settings, akka.event.LoggingAdapter log)
bind
. Implementation can be moved to
bind
when deprecated bind method(s) are removed.interface_
- (undocumented)port
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> cachedHostConnectionPool(java.lang.String host, int port, ConnectionPoolSettings settings, akka.event.LoggingAdapter log)
Flow
which dispatches incoming HTTP requests to the per-ActorSystem pool of outgoing
HTTP connections to the given target host endpoint. For every ActorSystem, target host and pool
configuration a separate connection pool is maintained.
The HTTP layer transparently manages idle shutdown and restarting of connections pools as configured.
The returned Flow
instances therefore remain valid throughout the lifetime of the application.
The internal caching logic guarantees that there will never be more than a single pool running for the given target host endpoint and configuration (in this ActorSystem).
Since the underlying transport usually comprises more than a single connection the produced flow might generate
responses in an order that doesn't directly match the consumed requests.
For example, if two requests A and B enter the flow in that order the response for B might be produced before the
response for A.
In order to allow for easy response-to-request association the flow takes in a custom, opaque context
object of type T
from the application which is emitted together with the corresponding response.
To configure additional settings for the pool (and requests made using it),
use the akka.http.host-connection-pool
config section or pass in a ConnectionPoolSettings
explicitly.
host
- (undocumented)port
- (undocumented)settings
- (undocumented)log
- (undocumented)public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> cachedHostConnectionPool(java.lang.String host, int port, ConnectionPoolSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> cachedHostConnectionPoolHttps(java.lang.String host, int port, HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log)
cachedHostConnectionPool(java.lang.String, int, akka.http.scaladsl.settings.ConnectionPoolSettings, akka.event.LoggingAdapter)
but for encrypted (HTTPS) connections.
If an explicit ConnectionContext
is given then it rather than the configured default ConnectionContext
will be used
for encryption on the connections.
To configure additional settings for the pool (and requests made using it),
use the akka.http.host-connection-pool
config section or pass in a ConnectionPoolSettings
explicitly.
host
- (undocumented)port
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> cachedHostConnectionPoolHttps(java.lang.String host, int port, HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> cachedHostConnectionPoolHttpsImpl(java.lang.String host, int port, HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log)
public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> cachedHostConnectionPoolImpl(java.lang.String host, int port, ConnectionPoolSettings settings, akka.event.LoggingAdapter log)
public akka.stream.scaladsl.BidiFlow<HttpRequest,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpResponse,akka.NotUsed> clientLayer(Host hostHeader)
akka.http.scaladsl.Http.ClientLayer
stage using the configured default ClientConnectionSettings
,
configured using the akka.http.client
config section.hostHeader
- (undocumented)public akka.stream.scaladsl.BidiFlow<HttpRequest,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpResponse,akka.NotUsed> clientLayer(Host hostHeader, ClientConnectionSettings settings, akka.event.LoggingAdapter log)
akka.http.scaladsl.Http.ClientLayer
stage using the given ClientConnectionSettings
.hostHeader
- (undocumented)settings
- (undocumented)log
- (undocumented)public HttpsConnectionContext defaultClientHttpsContext()
HttpsConnectionContext
.
Defaults used here can be configured using ssl-config or the context can be replaced using setDefaultClientHttpsContext
public ConnectionContext defaultServerHttpContext()
ConnectionContext
– defaults to plain HTTP.
Can be modified using setDefaultServerHttpContext
, and will then apply for servers bound after that call has completed.public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> newHostConnectionPool(java.lang.String host, int port, ConnectionPoolSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
Flow
which dispatches
the requests from all its materializations across this pool.
While the started host connection pool internally shuts itself down automatically after the configured idle
timeout it will spin itself up again if more requests arrive from an existing or a new client flow
materialization. The returned flow therefore remains usable for the full lifetime of the application.
Since the underlying transport usually comprises more than a single connection the produced flow might generate
responses in an order that doesn't directly match the consumed requests.
For example, if two requests A and B enter the flow in that order the response for B might be produced before the
response for A.
In order to allow for easy response-to-request association the flow takes in a custom, opaque context
object of type T
from the application which is emitted together with the corresponding response.
To configure additional settings for the pool (and requests made using it),
use the akka.http.host-connection-pool
config section or pass in a ConnectionPoolSettings
explicitly.
host
- (undocumented)port
- (undocumented)settings
- (undocumented)log
- (undocumented)fm
- (undocumented)public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> newHostConnectionPool(HostConnectionPoolSetup setup, akka.stream.Materializer fm)
Starts a new connection pool to the given host and configuration and returns a Flow
which dispatches
the requests from all its materializations across this pool.
While the started host connection pool internally shuts itself down automatically after the configured idle
timeout it will spin itself up again if more requests arrive from an existing or a new client flow
materialization. The returned flow therefore remains usable for the full lifetime of the application.
Since the underlying transport usually comprises more than a single connection the produced flow might generate
responses in an order that doesn't directly match the consumed requests.
For example, if two requests A and B enter the flow in that order the response for B might be produced before the
response for A.
In order to allow for easy response-to-request association the flow takes in a custom, opaque context
object of type T
from the application which is emitted together with the corresponding response.
setup
- (undocumented)fm
- (undocumented)public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,Http.HostConnectionPool> newHostConnectionPoolHttps(java.lang.String host, int port, HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
newHostConnectionPool(java.lang.String, int, akka.http.scaladsl.settings.ConnectionPoolSettings, akka.event.LoggingAdapter, akka.stream.Materializer)
but for encrypted (HTTPS) connections.
If an explicit ConnectionContext
is given then it rather than the configured default ConnectionContext
will be used
for encryption on the connections.
To configure additional settings for the pool (and requests made using it),
use the akka.http.host-connection-pool
config section or pass in a ConnectionPoolSettings
explicitly.
host
- (undocumented)port
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)fm
- (undocumented)public akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,scala.concurrent.Future<Http.OutgoingConnection>> outgoingConnection(java.lang.String host, int port, scala.Option<java.net.InetSocketAddress> localAddress, ClientConnectionSettings settings, akka.event.LoggingAdapter log)
Flow
representing a prospective HTTP client connection to the given endpoint.
Every materialization of the produced flow will attempt to establish a new outgoing connection.
To configure additional settings for requests made using this method,
use the akka.http.client
config section or pass in a ClientConnectionSettings
explicitly.
host
- (undocumented)port
- (undocumented)localAddress
- (undocumented)settings
- (undocumented)log
- (undocumented)public akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,scala.concurrent.Future<Http.OutgoingConnection>> outgoingConnectionHttps(java.lang.String host, int port, HttpsConnectionContext connectionContext, scala.Option<java.net.InetSocketAddress> localAddress, ClientConnectionSettings settings, akka.event.LoggingAdapter log)
outgoingConnection(java.lang.String, int, scala.Option<java.net.InetSocketAddress>, akka.http.scaladsl.settings.ClientConnectionSettings, akka.event.LoggingAdapter)
but for encrypted (HTTPS) connections.
If an explicit HttpsConnectionContext
is given then it rather than the configured default HttpsConnectionContext
will be used
for encryption on the connection.
To configure additional settings for requests made using this method,
use the akka.http.client
config section or pass in a ClientConnectionSettings
explicitly.
host
- (undocumented)port
- (undocumented)connectionContext
- (undocumented)localAddress
- (undocumented)settings
- (undocumented)log
- (undocumented)public akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,scala.concurrent.Future<Http.OutgoingConnection>> outgoingConnectionUsingTransport(java.lang.String host, int port, ClientTransport transport, ConnectionContext connectionContext, ClientConnectionSettings settings, akka.event.LoggingAdapter log)
outgoingConnection
but allows to specify a user-defined transport layer to run the connection on.
Depending on the kind of ConnectionContext
the implementation will add TLS between the given transport and the HTTP
implementation
To configure additional settings for requests made using this method,
use the akka.http.client
config section or pass in a ClientConnectionSettings
explicitly.
host
- (undocumented)port
- (undocumented)transport
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)public scala.concurrent.Future<java.lang.Object> poolSize()
For testing only
public akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> serverLayer(ServerSettings settings, scala.Option<java.net.InetSocketAddress> remoteAddress, akka.event.LoggingAdapter log, boolean isSecureConnection)
akka.http.scaladsl.Http.ServerLayer
stage using the given ServerSettings
. The returned BidiFlow
isn't reusable and
can only be materialized once. The remoteAddress
, if provided, will be added as a header to each HttpRequest
this layer produces if the akka.http.server.remote-address-header
configuration option is enabled.settings
- (undocumented)remoteAddress
- (undocumented)log
- (undocumented)isSecureConnection
- (undocumented)public akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> serverLayer(akka.stream.Materializer mat)
public akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> serverLayer(ServerSettings settings, scala.Option<java.net.InetSocketAddress> remoteAddress, akka.event.LoggingAdapter log, boolean isSecureConnection, akka.stream.Materializer mat)
public akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> serverLayer(ServerSettings settings, scala.Option<java.net.InetSocketAddress> remoteAddress, akka.event.LoggingAdapter log, akka.stream.Materializer mat)
public akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> serverLayerImpl(ServerSettings settings, scala.Option<java.net.InetSocketAddress> remoteAddress, akka.event.LoggingAdapter log, boolean isSecureConnection)
serverLayer
when deprecated serverLayer method(s) are removed.settings
- (undocumented)remoteAddress
- (undocumented)log
- (undocumented)isSecureConnection
- (undocumented)public void setDefaultClientHttpsContext(HttpsConnectionContext context)
HttpsConnectionContext
.context
- (undocumented)public void setDefaultServerHttpContext(ConnectionContext context)
ConnectionContext
.
If it is an instance of HttpsConnectionContext
then the server will be bound using HTTPS.context
- (undocumented)public scala.concurrent.Future<scala.runtime.BoxedUnit> shutdownAllConnectionPools()
ActorSystem
.
The returned future is completed when all pools that were live at the time of this method call
have completed their shutdown process.
If existing pool client flows are re-used or new ones materialized concurrently with or after this method call the respective connection pools will be restarted and not contribute to the returned future.
public scala.concurrent.Future<HttpResponse> singleRequest(HttpRequest request, HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log)
HttpRequest
across the (cached) host connection pool for the request's
effective URI to produce a response future.
If an explicit ConnectionContext
is given then it rather than the configured default ConnectionContext
will be used
for setting up the HTTPS connection pool, if the request is targeted towards an https
endpoint.
Note that the request must have an absolute URI, otherwise the future will be completed with an error.
request
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)public scala.concurrent.Future<HttpResponse> singleRequest(HttpRequest request, HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
public scala.concurrent.Future<HttpResponse> singleRequestImpl(HttpRequest request, HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log)
singleRequest
when deprecated singleRequest method(s) are removed.request
- (undocumented)connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)public <T> scala.Tuple2<scala.concurrent.Future<WebSocketUpgradeResponse>,T> singleWebSocketRequest(WebSocketRequest request, akka.stream.scaladsl.Flow<Message,Message,T> clientFlow, ConnectionContext connectionContext, scala.Option<java.net.InetSocketAddress> localAddress, ClientConnectionSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer mat)
request
- (undocumented)clientFlow
- (undocumented)connectionContext
- (undocumented)localAddress
- (undocumented)settings
- (undocumented)log
- (undocumented)mat
- (undocumented)public com.typesafe.sslconfig.akka.AkkaSSLConfig sslConfig()
sslConfig
in interface DefaultSSLContextCreation
public akka.stream.scaladsl.BidiFlow<akka.stream.TLSProtocol.SslTlsOutbound,akka.util.ByteString,akka.util.ByteString,akka.stream.TLSProtocol.SslTlsInbound,akka.NotUsed> sslTlsStage(ConnectionContext connectionContext, akka.stream.TLSRole role, scala.Option<scala.Tuple2<java.lang.String,java.lang.Object>> hostInfo)
public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,akka.NotUsed> superPool(HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log)
If an explicit ConnectionContext
is given then it rather than the configured default ConnectionContext
will be used
for setting up HTTPS connection pools, if required.
Since the underlying transport usually comprises more than a single connection the produced flow might generate
responses in an order that doesn't directly match the consumed requests.
For example, if two requests A and B enter the flow in that order the response for B might be produced before the
response for A.
In order to allow for easy response-to-request association the flow takes in a custom, opaque context
object of type T
from the application which is emitted together with the corresponding response.
To configure additional settings for the pool (and requests made using it),
use the akka.http.host-connection-pool
config section or pass in a ConnectionPoolSettings
explicitly.
connectionContext
- (undocumented)settings
- (undocumented)log
- (undocumented)public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,akka.NotUsed> superPool(HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log, akka.stream.Materializer fm)
public <T> akka.stream.scaladsl.Flow<scala.Tuple2<HttpRequest,T>,scala.Tuple2<scala.util.Try<HttpResponse>,T>,akka.NotUsed> superPoolImpl(HttpsConnectionContext connectionContext, ConnectionPoolSettings settings, akka.event.LoggingAdapter log)
public akka.actor.ActorSystem system()
system
in interface DefaultSSLContextCreation
public akka.stream.scaladsl.Flow<Message,Message,scala.concurrent.Future<WebSocketUpgradeResponse>> webSocketClientFlow(WebSocketRequest request, ConnectionContext connectionContext, scala.Option<java.net.InetSocketAddress> localAddress, ClientConnectionSettings settings, akka.event.LoggingAdapter log)
The layer is not reusable and must only be materialized once.
request
- (undocumented)connectionContext
- (undocumented)localAddress
- (undocumented)settings
- (undocumented)log
- (undocumented)public akka.stream.scaladsl.BidiFlow<Message,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,Message,scala.concurrent.Future<WebSocketUpgradeResponse>> webSocketClientLayer(WebSocketRequest request, ClientConnectionSettings settings, akka.event.LoggingAdapter log)
akka.http.scaladsl.Http.WebSocketClientLayer
stage using the configured default ClientConnectionSettings
,
configured using the akka.http.client
config section.
The layer is not reusable and must only be materialized once.
request
- (undocumented)settings
- (undocumented)log
- (undocumented)