Transport CONNECT v Akka HTTP pre požiadavky HTTPS
Pripojte proxy transport k nastaveniam fondu pripojení a odovzdajte tieto nastavenia požiadavke, ktorá potrebuje tunel.
Pri požiadavke HTTPS v Akka HTTP nastavte transport klienta tak, aby sa CONNECT vytváral cez forward proxy:
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)
Aplikácia poskytuje existujúci ActorSystem ako system a zachováva obvyklý životný cyklus streamu a response-entity. Spotrebujte alebo zahoďte vrátenú response-entity, aby sa spojenie mohlo uvoľniť.
Názov httpsProxy tu označuje nadviazanie spojenia s cieľom HTTPS cez proxy HTTP CONNECT. Nie je to pokyn otvoriť TLS reláciu so samotným listenerom proxy.
Odovzdajte prispôsobené nastavenia požiadavke alebo fondu, ktorý odosiela prevádzku. Vytvorenie nastavení vedľa volania, ktoré používa inú konfiguráciu fondu, toto volanie nemení.
Akka dokumentuje tento transport pre požiadavky HTTPS. Zachovajte cieľ ako jeho skutočné HTTPS URI. Koncový bod HTTP zo zoznamu proxy HTTP je kandidátom na transport, keď povoľuje požadovaný cieľ CONNECT. Príklad bindFlow forwardingu na strane servera vytvára inú službu HTTP a odpovedá na iný problém konštrukcie.