U požadavku HTTPS v Akka HTTP nakonfigurujte klientský transport tak, aby navazoval CONNECT přes 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)

Aplikace poskytuje svůj stávající ActorSystem jako system a zachovává obvyklý životní cyklus streamu a entity odpovědi. Vrácenou entitu odpovědi odpovídajícím způsobem spotřebujte nebo zahoďte, aby se spojení mohlo uvolnit.

Název httpsProxy zde označuje navázání spojení s cílem HTTPS přes proxy HTTP CONNECT. Není to pokyn otevřít relaci TLS se samotným posluchačem proxy.

Předejte upravené nastavení požadavku nebo fondu, který odesílá provoz. Pokud nastavení vytvoříte vedle volání, které používá jinou konfiguraci fondu, zůstane toto volání nezměněné.

Akka tento transport dokumentuje pro požadavky HTTPS. Ponechte cíl jako jeho skutečné HTTPS URI. Koncový bod HTTP ze seznamu HTTP proxy je pro transport kandidátem, pokud povoluje požadovaný cíl CONNECT. Příklad přesměrování bindFlow na straně serveru vytváří jinou službu HTTP a odpovídá na odlišný problém sestavení.

Související články