Para una solicitud HTTPS de Akka HTTP, configure su transporte de cliente para establecer CONNECT a través del 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)

La aplicación proporciona su ActorSystem existente como system y conserva el ciclo de vida habitual del flujo y de la entidad de respuesta. Consuma o descarte la entidad de respuesta devuelta según corresponda para que la conexión pueda liberarse.

El nombre httpsProxy se refiere aquí a establecer una conexión de destino HTTPS a través de un proxy HTTP CONNECT. No es una instrucción para abrir una sesión TLS con el propio receptor del proxy.

Pase la configuración personalizada a la solicitud o al grupo que envía el tráfico. Construir la configuración junto a una llamada que usa otra configuración de grupo deja esa llamada sin cambios.

Akka documenta este transporte para solicitudes HTTPS. Mantenga el destino como su URI HTTPS real. Un punto de conexión HTTP de la lista de proxies HTTP es candidato para el transporte cuando permite el destino CONNECT requerido. Un ejemplo de reenvío bindFlow del lado del servidor crea otro servicio HTTP y responde a un problema de construcción distinto.

Artículos relacionados