Akka HTTP:n CONNECT-siirto HTTPS-pyynnöille
Liitä välityspalvelinsiirto yhteyksien poolin asetuksiin ja välitä asetukset pyynnölle, joka tarvitsee tunnelin.
Akka HTTP:n HTTPS-pyynnölle määritä asiakassiirto muodostamaan CONNECT välityspalvelimen kautta:
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)
Sovellus tarjoaa olemassa olevan ActorSysteminsä system-nimisenä ja säilyttää tavanomaisen virran ja vastausentiteetin elinkaaren. Kuluta tai hylkää palautettu vastausentiteetti asianmukaisesti, jotta yhteys voidaan vapauttaa.
Nimi httpsProxy viittaa tässä HTTPS-kohdeyhteyden muodostamiseen HTTP CONNECT -välityspalvelimen kautta. Se ei ole ohje avata TLS-istuntoa välityspalvelimen kuuntelijaan itseensä.
Välitä mukautetut asetukset pyynnölle tai poolille, joka lähettää liikenteen. Jos asetukset rakennetaan kutsun viereen, joka käyttää toista poolimääritystä, kyseinen kutsu pysyy muuttumattomana.
Akka dokumentoi tämän siirron HTTPS-pyynnöille. Pidä kohde sen todellisena HTTPS URI -osoitteena. HTTP-välityspalvelinluettelon HTTP-päätepiste on siirrolle ehdokas, kun se sallii vaaditun CONNECT-kohteen. Palvelinpuolen bindFlow-edelleenlähetysesimerkki luo toisen HTTP-palvelun ja vastaa erilaiseen rakennusongelmaan.