Za zahtevo HTTPS v Akka HTTP nastavite transport odjemalca tako, da se CONNECT vzpostavi prek 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)

Aplikacija zagotovi obstoječi ActorSystem kot system in ohrani običajni življenjski cikel toka in response-entity. Prejmite ali zavrzite vrnjeno response-entity, da se povezava lahko sprosti.

Ime httpsProxy tukaj pomeni vzpostavitev povezave s ciljem HTTPS prek proxyja HTTP CONNECT. To ni navodilo za odpiranje seje TLS s samim poslušalcem proxyja.

Posredujte prilagojene nastavitve zahtevi ali sklopu, ki pošilja promet. Ustvarjanje nastavitev ob klicu, ki uporablja drugo konfiguracijo sklopa, tega klica ne spremeni.

Akka ta transport dokumentira za zahteve HTTPS. Ohranite cilj kot njegov pravi URI HTTPS. Končna točka HTTP s seznama proxyjev HTTP je kandidat za transport, ko dovoljuje zahtevani cilj CONNECT. Primer posredovanja bindFlow na strežniški strani ustvari drugo storitev HTTP in odgovori na drugačen problem gradnje.

Sorodni članki