Por HTTPS-peto de Akka HTTP, agordu ĝian klientan transporton por starigi CONNECT tra la antaŭa prokuro:

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 aplikaĵo provizas sian ekzistantan ActorSystem kiel system kaj konservas la kutiman vivciklon de la fluo kaj de la responda ento. Konsumu aŭ forĵetu la redonitan respondan enton laŭeble, por ke la konekto povu esti liberigita.

La nomo httpsProxy ĉi tie signifas starigi HTTPS-celan konekton tra HTTP CONNECT-prokuro. Ĝi ne estas instrukcio malfermi TLS-sesion al la prokura aŭskultanto mem.

Transdonu la adaptitajn agordojn al la peto aŭ al la kampo, kiu sendas la trafikon. Se oni konstruas agordojn apud voko, kiu uzas alian kampan konfiguracion, tiu voko restas senŝanĝa.

Akka dokumentas ĉi tiun transporton por HTTPS-petoj. Konservu la celon kiel ĝian realan HTTPS-URI. HTTP-finpunkto el la listo de HTTP-prokuroj estas kandidato por la transporto, kiam ĝi permesas la postulatan CONNECT-celon. Ekzemplo de bindFlow-plusendado ĉe la servila flanko kreas alian HTTP-servon kaj respondas al malsama konstrua problemo.

Rilataj artikoloj