O transporte CONNECT de Akka HTTP para solicitudes HTTPS
Vincule o transporte do proxy á configuración do grupo de conexións e pase esa configuración á solicitude que necesita o túnel.
Para unha solicitude HTTPS de Akka HTTP, configure o seu transporte de cliente para establecer CONNECT a través do proxy de reenvío:
import java.net.InetSocketAddress
import akka.http.scaladsl.{ClientTransport, Http}
import akka.http.scaladsl.model.HttpRequest
import akka.http.scaladsl.settings.ConnectionPoolSettings
val transport = ClientTransport.httpsProxy(
InetSocketAddress.createUnresolved("proxy.example", 8080))
val settings = ConnectionPoolSettings(system)
.withConnectionSettings(_.withTransport(transport))
val response = Http().singleRequest(
HttpRequest(uri = "https://example.com/"),
settings = settings)
A aplicación fornece o seu ActorSystem existente como system e conserva o ciclo de vida habitual do fluxo e da entidade de resposta. Consuma ou descarte a entidade de resposta devolta segundo corresponda para que a conexión poida liberarse.
O nome httpsProxy refírese aquí a establecer unha conexión de destino HTTPS a través dun proxy HTTP CONNECT. Non é unha instrución para abrir unha sesión TLS co propio receptor do proxy.
Pase a configuración personalizada á solicitude ou ao grupo que envía o tráfico. Construír a configuración xunto a unha chamada que usa outra configuración de grupo deixa esa chamada sen cambios.
Akka documenta este transporte para solicitudes HTTPS. Manteña o destino como o seu URI HTTPS real. Un punto de conexión HTTP da lista de proxies HTTP é candidato para o transporte cando permite o destino CONNECT requirido. Un exemplo de reenvío bindFlow no lado do servidor crea outro servizo HTTP e responde a un problema de construción distinto.