Akka HTTP HTTPS pieprasījumam konfigurējiet klienta transportu, lai CONNECT tiktu izveidots caur 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)

Lietojumprogramma nodrošina esošo ActorSystem kā system un saglabā ierasto stream un response-entity dzīves ciklu. Patērējiet vai atmetiet atgriezto response entity, lai savienojumu varētu atbrīvot.

Nosaukums httpsProxy šeit nozīmē HTTPS galamērķa savienojuma izveidi caur HTTP CONNECT proxy. Tas nav norādījums atvērt TLS sesiju ar pašu proxy listener.

Nododiet pielāgotos iestatījumus pieprasījumam vai baseinam, kas sūta trafiku. Iestatījumu veidošana blakus izsaukumam, kas izmanto citu baseina konfigurāciju, šo izsaukumu nemaina.

Akka dokumentē šo transportu HTTPS pieprasījumiem. Saglabājiet galamērķi kā īstu HTTPS URI. HTTP galapunkts no HTTP proxy saraksta ir transporta kandidāts, ja tas atļauj nepieciešamo CONNECT galamērķi. Servera puses bindFlow forwarding piemērs izveido citu HTTP servisu un atbild uz citu konstruēšanas problēmu.

Saistītie raksti