CONNECT транспорт Akka HTTP-а за HTTPS захтеве
Причврстите proxy транспорт на подешавања connection pool-а и проследите та подешавања захтеву коме треба тунел.
За HTTPS захтев у Akka HTTP-у конфигуришите клијентски транспорт тако да се CONNECT успоставља кроз 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)
Апликација даје постојећи ActorSystem као system и задржава уобичајени животни циклус stream-а и response-entity-ја. Искористите или одбаците враћени response entity да би веза могла да се ослободи.
Назив httpsProxy овде означава успостављање HTTPS везе према одредишту кроз HTTP CONNECT proxy. То није упутство за отварање TLS сесије према самом proxy listener-у.
Проследите прилагођена подешавања захтеву или pool-у који шаље саобраћај. Стварање подешавања поред позива који користи другу конфигурацију pool-а не мења тај позив.
Akka документује овај транспорт за HTTPS захтеве. Задржите одредиште као његов стварни HTTPS URI. HTTP endpoint са листе HTTP proxy-ја кандидат је за транспорт када дозвољава тражено CONNECT одредиште. Пример bindFlow forwarding-а на страни сервера ствара другу HTTP услугу и одговара на други проблем изградње.