CONNECT-transporten til Akka HTTP for HTTPS-førespurnader
Kople proxy-transporten til innstillingane for connection pool og send desse innstillingane til førespurnaden som treng tunnelen.
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.