Za HTTPS zahtjev Akka HTTP-a konfigurirajte njegov klijentski transport da uspostavi CONNECT kroz prednji 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 osigurava svoj postojeći ActorSystem kao system i zadržava uobičajeni životni ciklus toka i entiteta odgovora. Potrošite ili odbacite vraćeni entitet odgovora prema potrebi kako bi se veza mogla osloboditi.

Naziv httpsProxy ovdje označava uspostavljanje veze s HTTPS odredištem kroz HTTP CONNECT proxy. To nije uputa za otvaranje TLS sesije prema samom proxy poslužitelju.

Proslijedite prilagođene postavke zahtjevu ili bazenu koji šalje promet. Ako se postavke grade uz poziv koji rabi drugu konfiguraciju bazena, taj poziv ostaje nepromijenjen.

Akka dokumentira ovaj transport za HTTPS zahtjeve. Držite odredište kao njegov stvarni HTTPS URI. HTTP krajnja točka s popisa HTTP proxyja kandidat je za transport kada dopušta traženo CONNECT odredište. Primjer prosljeđivanja bindFlow na strani poslužitelja stvara drugu HTTP uslugu i odgovara na drukčiji problem izgradnje.

Povezani članci