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 dostavlja 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 da se otvori TLS sesija prema samom slušaocu proxyja.

Proslijedite prilagođene postavke zahtjevu ili bazenu koji šalje promet. Ako se postavke grade pored poziva koji koristi 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 tačka sa liste HTTP proxyja kandidat je za transport kada dopušta traženo CONNECT odredište. Primjer prosljeđivanja bindFlow na strani servera stvara drugu HTTP uslugu i odgovara na drugačiji problem izgradnje.

Povezani članci