Class

akka.http.scaladsl

HttpExt

Related Doc: package scaladsl

Permalink

class HttpExt extends Extension with DefaultSSLContextCreation

Akka extension for HTTP which serves as the main entry point into akka-http.

Use as Http().bindAndHandle etc. with an implicit ActorSystem in scope.

Annotations
@DoNotInherit()
Source
Http.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HttpExt
  2. DefaultSSLContextCreation
  3. Extension
  4. AnyRef
  5. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type ClientLayer = BidiFlow[HttpRequest, SslTlsOutbound, SslTlsInbound, HttpResponse, NotUsed]

    Permalink
  2. type ServerLayer = BidiFlow[HttpResponse, SslTlsOutbound, SslTlsInbound, HttpRequest, NotUsed]

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from HttpExt to any2stringadd[HttpExt] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (HttpExt, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from HttpExt to ArrowAssoc[HttpExt] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def bind(interface: String, port: Int = DefaultPortForProtocol, connectionContext: ConnectionContext = defaultServerHttpContext, settings: ServerSettings = ServerSettings(system), log: LoggingAdapter = system.log): Source[IncomingConnection, Future[ServerBinding]]

    Permalink

    Creates a akka.stream.scaladsl.Source of akka.http.scaladsl.Http.IncomingConnection instances which represents a prospective HTTP server binding on the given endpoint.

    Creates a akka.stream.scaladsl.Source of akka.http.scaladsl.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 akka.http.scaladsl.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 akka.http.scaladsl.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 akka.http.scaladsl.settings.ServerSettings explicitly.

  8. def bindAndHandle(handler: Flow[HttpRequest, HttpResponse, Any], interface: String, port: Int = DefaultPortForProtocol, connectionContext: ConnectionContext = defaultServerHttpContext, settings: ServerSettings = ServerSettings(system), log: LoggingAdapter = system.log)(implicit fm: Materializer): Future[ServerBinding]

    Permalink

    Convenience method which starts a new HTTP server at the given endpoint and uses the given handler akka.stream.scaladsl.Flow for processing all incoming connections.

    Convenience method which starts a new HTTP server at the given endpoint and uses the given handler akka.stream.scaladsl.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 akka.http.scaladsl.settings.ServerSettings explicitly.

  9. def bindAndHandleAsync(handler: (HttpRequest) ⇒ Future[HttpResponse], interface: String, port: Int = DefaultPortForProtocol, connectionContext: ConnectionContext = defaultServerHttpContext, settings: ServerSettings = ServerSettings(system), parallelism: Int = 1, log: LoggingAdapter = system.log)(implicit fm: Materializer): Future[ServerBinding]

    Permalink

    Convenience method which starts a new HTTP server at the given endpoint and uses the given handler akka.stream.scaladsl.Flow for processing all incoming connections.

    Convenience method which starts a new HTTP server at the given endpoint and uses the given handler akka.stream.scaladsl.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 akka.http.scaladsl.settings.ServerSettings explicitly.

  10. def bindAndHandleSync(handler: (HttpRequest) ⇒ HttpResponse, interface: String, port: Int = DefaultPortForProtocol, connectionContext: ConnectionContext = defaultServerHttpContext, settings: ServerSettings = ServerSettings(system), log: LoggingAdapter = system.log)(implicit fm: Materializer): Future[ServerBinding]

    Permalink

    Convenience method which starts a new HTTP server at the given endpoint and uses the given handler akka.stream.scaladsl.Flow for processing all incoming connections.

    Convenience method which starts a new HTTP server at the given endpoint and uses the given handler akka.stream.scaladsl.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 akka.http.scaladsl.settings.ServerSettings explicitly.

  11. def cachedHostConnectionPool[T](host: String, port: Int = 80, settings: ConnectionPoolSettings = defaultConnectionPoolSettings, log: LoggingAdapter = system.log): Flow[(HttpRequest, T), (Try[HttpResponse], T), HostConnectionPool]

    Permalink

    Returns a akka.stream.scaladsl.Flow which dispatches incoming HTTP requests to the per-ActorSystem pool of outgoing HTTP connections to the given target host endpoint.

    Returns a akka.stream.scaladsl.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 akka.stream.scaladsl.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.

  12. def cachedHostConnectionPoolHttps[T](host: String, port: Int = 443, connectionContext: HttpsConnectionContext = defaultClientHttpsContext, settings: ConnectionPoolSettings = defaultConnectionPoolSettings, log: LoggingAdapter = system.log): Flow[(HttpRequest, T), (Try[HttpResponse], T), HostConnectionPool]

    Permalink

    Same as #cachedHostConnectionPool but for encrypted (HTTPS) connections.

    Same as #cachedHostConnectionPool 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.

  13. def clientLayer(hostHeader: Host, settings: ClientConnectionSettings, log: LoggingAdapter = system.log): ClientLayer

    Permalink

    Constructs a akka.http.scaladsl.Http.ClientLayer stage using the given akka.http.scaladsl.settings.ClientConnectionSettings.

  14. def clientLayer(hostHeader: Host): ClientLayer

    Permalink

    Constructs a akka.http.scaladsl.Http.ClientLayer stage using the configured default akka.http.scaladsl.settings.ClientConnectionSettings, configured using the akka.http.client config section.

  15. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  16. def createClientHttpsContext(sslConfig: AkkaSSLConfig): HttpsConnectionContext

    Permalink
    Definition Classes
    DefaultSSLContextCreation
  17. def createDefaultClientHttpsContext(): HttpsConnectionContext

    Permalink
    Definition Classes
    DefaultSSLContextCreation
  18. def createServerHttpsContext(sslConfig: AkkaSSLConfig): HttpsConnectionContext

    Permalink
    Definition Classes
    DefaultSSLContextCreation
  19. def defaultClientHttpsContext: HttpsConnectionContext

    Permalink

    Gets the current default client-side HttpsConnectionContext.

    Gets the current default client-side HttpsConnectionContext. Defaults used here can be configured using ssl-config or the context can be replaced using setDefaultClientHttpsContext

  20. def defaultServerHttpContext: ConnectionContext

    Permalink

    Gets the current default server-side ConnectionContext – defaults to plain HTTP.

    Gets the current default server-side ConnectionContext – defaults to plain HTTP. Can be modified using setDefaultServerHttpContext, and will then apply for servers bound after that call has completed.

  21. def ensuring(cond: (HttpExt) ⇒ Boolean, msg: ⇒ Any): HttpExt

    Permalink
    Implicit information
    This member is added by an implicit conversion from HttpExt to Ensuring[HttpExt] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  22. def ensuring(cond: (HttpExt) ⇒ Boolean): HttpExt

    Permalink
    Implicit information
    This member is added by an implicit conversion from HttpExt to Ensuring[HttpExt] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  23. def ensuring(cond: Boolean, msg: ⇒ Any): HttpExt

    Permalink
    Implicit information
    This member is added by an implicit conversion from HttpExt to Ensuring[HttpExt] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  24. def ensuring(cond: Boolean): HttpExt

    Permalink
    Implicit information
    This member is added by an implicit conversion from HttpExt to Ensuring[HttpExt] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  25. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  26. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  27. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  28. def formatted(fmtstr: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from HttpExt to StringFormat[HttpExt] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  29. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  30. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  31. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  32. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  33. def newHostConnectionPool[T](host: String, port: Int = 80, settings: ConnectionPoolSettings = defaultConnectionPoolSettings, log: LoggingAdapter = system.log)(implicit fm: Materializer): Flow[(HttpRequest, T), (Try[HttpResponse], T), HostConnectionPool]

    Permalink

    Starts a new connection pool to the given host and configuration and returns a akka.stream.scaladsl.Flow which dispatches the requests from all its materializations across this pool.

    Starts a new connection pool to the given host and configuration and returns a akka.stream.scaladsl.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.

  34. def newHostConnectionPoolHttps[T](host: String, port: Int = 443, connectionContext: HttpsConnectionContext = defaultClientHttpsContext, settings: ConnectionPoolSettings = defaultConnectionPoolSettings, log: LoggingAdapter = system.log)(implicit fm: Materializer): Flow[(HttpRequest, T), (Try[HttpResponse], T), HostConnectionPool]

    Permalink

    Same as #newHostConnectionPool but for encrypted (HTTPS) connections.

    Same as #newHostConnectionPool 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.

  35. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  36. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  37. def outgoingConnection(host: String, port: Int = 80, localAddress: Option[InetSocketAddress] = None, settings: ClientConnectionSettings = ClientConnectionSettings(system), log: LoggingAdapter = system.log): Flow[HttpRequest, HttpResponse, Future[OutgoingConnection]]

    Permalink

    Creates a akka.stream.scaladsl.Flow representing a prospective HTTP client connection to the given endpoint.

    Creates a akka.stream.scaladsl.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 akka.http.scaladsl.settings.ClientConnectionSettings explicitly.

  38. def outgoingConnectionHttps(host: String, port: Int = 443, connectionContext: HttpsConnectionContext = defaultClientHttpsContext, localAddress: Option[InetSocketAddress] = None, settings: ClientConnectionSettings = ClientConnectionSettings(system), log: LoggingAdapter = system.log): Flow[HttpRequest, HttpResponse, Future[OutgoingConnection]]

    Permalink

    Same as #outgoingConnection but for encrypted (HTTPS) connections.

    Same as #outgoingConnection 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 akka.http.scaladsl.settings.ClientConnectionSettings explicitly.

  39. def outgoingConnectionUsingContext(host: String, port: Int, connectionContext: ConnectionContext, settings: ClientConnectionSettings = ClientConnectionSettings(system), log: LoggingAdapter = system.log): Flow[HttpRequest, HttpResponse, Future[OutgoingConnection]]

    Permalink

    Similar to outgoingConnection but allows to specify a user-defined context to run the connection on.

    Similar to outgoingConnection but allows to specify a user-defined context 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 akka.http.scaladsl.settings.ClientConnectionSettings explicitly.

  40. def serverLayer(settings: ServerSettings = ServerSettings(system), remoteAddress: Option[InetSocketAddress] = None, log: LoggingAdapter = system.log, isSecureConnection: Boolean = false): ServerLayer

    Permalink

    Constructs a akka.http.scaladsl.Http.ServerLayer stage using the given akka.http.scaladsl.settings.ServerSettings.

    Constructs a akka.http.scaladsl.Http.ServerLayer stage using the given akka.http.scaladsl.settings.ServerSettings. The returned akka.stream.scaladsl.BidiFlow isn't reusable and can only be materialized once. The remoteAddress, if provided, will be added as a header to each akka.http.scaladsl.model.HttpRequest this layer produces if the akka.http.server.remote-address-header configuration option is enabled.

  41. def setDefaultClientHttpsContext(context: HttpsConnectionContext): Unit

    Permalink

    Sets the default client-side HttpsConnectionContext.

  42. def setDefaultServerHttpContext(context: ConnectionContext): Unit

    Permalink

    Sets the default server-side ConnectionContext.

    Sets the default server-side ConnectionContext. If it is an instance of HttpsConnectionContext then the server will be bound using HTTPS.

  43. def shutdownAllConnectionPools(): Future[Unit]

    Permalink

    Triggers an orderly shutdown of all host connections pools currently maintained by the akka.actor.ActorSystem.

    Triggers an orderly shutdown of all host connections pools currently maintained by the akka.actor.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.

  44. def singleRequest(request: HttpRequest, connectionContext: HttpsConnectionContext = defaultClientHttpsContext, settings: ConnectionPoolSettings = defaultConnectionPoolSettings, log: LoggingAdapter = system.log): Future[HttpResponse]

    Permalink

    Fires a single akka.http.scaladsl.model.HttpRequest across the (cached) host connection pool for the request's effective URI to produce a response future.

    Fires a single akka.http.scaladsl.model.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.

  45. def singleWebSocketRequest[T](request: WebSocketRequest, clientFlow: Flow[Message, Message, T], connectionContext: ConnectionContext = defaultClientHttpsContext, localAddress: Option[InetSocketAddress] = None, settings: ClientConnectionSettings = ClientConnectionSettings(system), log: LoggingAdapter = system.log)(implicit mat: Materializer): (Future[WebSocketUpgradeResponse], T)

    Permalink

    Runs a single WebSocket conversation given a Uri and a flow that represents the client side of the WebSocket conversation.

  46. val sslConfig: AkkaSSLConfig

    Permalink
    Definition Classes
    HttpExtDefaultSSLContextCreation
  47. def superPool[T](connectionContext: HttpsConnectionContext = defaultClientHttpsContext, settings: ConnectionPoolSettings = defaultConnectionPoolSettings, log: LoggingAdapter = system.log): Flow[(HttpRequest, T), (Try[HttpResponse], T), NotUsed]

    Permalink

    Creates a new "super connection pool flow", which routes incoming requests to a (cached) host connection pool depending on their respective effective URIs.

    Creates a new "super connection pool flow", which routes incoming requests to a (cached) host connection pool depending on their respective effective URIs. Note that incoming requests must have an absolute URI.

    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.

  48. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  49. implicit val system: ExtendedActorSystem

    Permalink
    Definition Classes
    HttpExtDefaultSSLContextCreation
  50. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  51. def validateAndWarnAboutLooseSettings(): Unit

    Permalink
    Definition Classes
    DefaultSSLContextCreation
  52. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  53. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  54. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  55. def webSocketClientFlow(request: WebSocketRequest, connectionContext: ConnectionContext = defaultClientHttpsContext, localAddress: Option[InetSocketAddress] = None, settings: ClientConnectionSettings = ClientConnectionSettings(system), log: LoggingAdapter = system.log): Flow[Message, Message, Future[WebSocketUpgradeResponse]]

    Permalink

    Constructs a flow that once materialized establishes a WebSocket connection to the given Uri.

    Constructs a flow that once materialized establishes a WebSocket connection to the given Uri.

    The layer is not reusable and must only be materialized once.

  56. def webSocketClientLayer(request: WebSocketRequest, settings: ClientConnectionSettings = ClientConnectionSettings(system), log: LoggingAdapter = system.log): WebSocketClientLayer

    Permalink

    Constructs a akka.http.scaladsl.Http.WebSocketClientLayer stage using the configured default akka.http.scaladsl.settings.ClientConnectionSettings, configured using the akka.http.client config section.

    Constructs a akka.http.scaladsl.Http.WebSocketClientLayer stage using the configured default akka.http.scaladsl.settings.ClientConnectionSettings, configured using the akka.http.client config section.

    The layer is not reusable and must only be materialized once.

  57. def [B](y: B): (HttpExt, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from HttpExt to ArrowAssoc[HttpExt] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from DefaultSSLContextCreation

Inherited from Extension

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from HttpExt to any2stringadd[HttpExt]

Inherited by implicit conversion StringFormat from HttpExt to StringFormat[HttpExt]

Inherited by implicit conversion Ensuring from HttpExt to Ensuring[HttpExt]

Inherited by implicit conversion ArrowAssoc from HttpExt to ArrowAssoc[HttpExt]

Ungrouped