Egy Akka HTTP HTTPS-kérés esetén állítsa be az ügyféltranszportot úgy, hogy CONNECT-kapcsolatot létesítsen az előremenő proxyn keresztül:

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)

Az alkalmazás a meglévő ActorSystemjét system néven biztosítja, és megtartja a szokásos stream- és válaszentitás-életciklust. A visszaadott válaszentitást a megfelelő módon fogyassza el vagy dobja el, hogy a kapcsolat felszabadítható legyen.

A httpsProxy név itt HTTPS-célkapcsolat létesítését jelenti HTTP CONNECT proxyn keresztül. Ez nem utasítás arra, hogy TLS-munkamenetet nyisson magával a proxylistenerrel.

Adja át a testreszabott beállításokat annak a kérésnek vagy készletnek, amely a forgalmat küldi. Ha a beállításokat egy másik készletkonfigurációt használó hívás mellett hozza létre, az a hívás változatlan marad.

Az Akka ezt a transzportot HTTPS-kérésekhez dokumentálja. Tartsa meg a célt valódi HTTPS URI-ként. Egy HTTP-végpont a HTTP-proxylistáról akkor jöhet szóba a transzport számára, ha engedélyezi a szükséges CONNECT-célt. A kiszolgálóoldali bindFlow-továbbítási példa egy másik HTTP-szolgáltatást hoz létre, és más felépítési problémára ad választ.

Kapcsolódó cikkek