CONNECT транспорт на Akka HTTP за HTTPS заявки
Свържете прокси транспорта с настройките на пула от връзки и предайте тези настройки на заявката, която се нуждае от тунела.
За HTTPS заявка в Akka HTTP конфигурирайте клиентския транспорт да установява CONNECT през предния прокси:
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 и запазва обичайния жизнен цикъл на потока и на обекта на отговора. Изразходвайте или отхвърлете върнатия обект на отговора, както е подходящо, за да може връзката да бъде освободена.
Името httpsProxy тук означава установяване на връзка към HTTPS дестинация през HTTP CONNECT прокси. Това не е указание да се отвори TLS сесия към самия слушател на прокси.
Предайте персонализираните настройки на заявката или пула, който изпраща трафика. Ако изградите настройки до извикване, което използва друга конфигурация на пул, това извикване остава непроменено.
Akka документира този транспорт за HTTPS заявки. Пазете дестинацията като истинския ѝ HTTPS URI. HTTP крайна точка от списъка с HTTP прокси е кандидат за транспорта, когато позволява необходимата CONNECT дестинация. Пример за препращане bindFlow от страна на сървъра създава друга HTTP услуга и отговаря на различен проблем при изграждането.