For ein HTTPS-førespurnad i Akka HTTP, set opp klienttransporten slik at CONNECT blir oppretta gjennom forward-proxyen:

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)

Programmet leverer den eksisterande ActorSystem som system og held på den vanlege livssyklusen for stream og response-entity. Bruk opp eller kast response-entityen som blir returnert, slik at tilkoplinga kan frigjerast.

Namnet httpsProxy viser her til å opprette ei HTTPS-tilkopling til målet gjennom ein HTTP CONNECT-proxy. Det er ikkje ei oppskrift på å opne ei TLS-økt mot sjølve proxy-lyttaren.

Send dei tilpassa innstillingane inn i førespurnaden eller poolen som sender trafikken. Å byggje innstillingar ved sida av eit kall som brukar ein annan pool-konfigurasjon, endrar ikkje det kallet.

Akka dokumenterer denne transporten for HTTPS-førespurnader. Hald målet som den verkelege HTTPS-URI-en. Eit HTTP-endepunkt frå HTTP-proxy-lista er ein kandidat for transporten når det tillèt CONNECT-målet som krevst. Eit bindFlow-forwarding-døme på serversida lagar ein annan HTTP-teneste og svarar på eit anna konstruksjonsproblem.

Relaterte artiklar