Za HTTPS zahtjev u Akka HTTP-u konfigurirajte klijentski transport tako da se CONNECT uspostavlja kroz 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 daje postojeći ActorSystem kao system i zadržava uobičajeni životni ciklus stream-a i response-entity-ja. Iskoristite ili odbacite vraćeni response entity da bi se veza mogla osloboditi.

Naziv httpsProxy ovdje označava uspostavljanje HTTPS veze prema odredištu kroz HTTP CONNECT proxy. To nije uputa za otvaranje TLS sesije prema samom proxy listeneru.

Proslijedite prilagođene postavke zahtjevu ili pool-u koji šalje promet. Stvaranje postavki pored poziva koji koristi drugu konfiguraciju pool-a ne mijenja taj poziv.

Akka dokumentira ovaj transport za HTTPS zahtjeve. Zadržite odredište kao njegov stvarni HTTPS URI. HTTP endpoint s popisa HTTP proxyja kandidat je za transport kada dopušta traženo CONNECT odredište. Primjer bindFlow forwardinga na strani servera stvara drugu HTTP uslugu i odgovara na drugi problem izgradnje.

Povezani članci