HTTPS хүсэлтэд зориулсан Akka HTTP-ийн CONNECT транспорт
proxy транспортыг connection pool-ийн тохиргоонд хавсаргаж, туннель шаардлагатай хүсэлтэд эдгээр тохиргоог дамжуулна.
Akka HTTP-ийн HTTPS хүсэлтийн хувьд forward proxy-гоор 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 болгон өгч, stream болон response-entity-ийн ердийн амьдралын мөчлөгийг хадгална. Холболтыг чөлөөлөхийн тулд буцаж ирсэн response entity-г зохих ёсоор ашиглах эсвэл хаях хэрэгтэй.
Энд httpsProxy гэдэг нэр нь HTTP CONNECT proxy-гоор HTTPS очих цэгийн холболт тогтоохыг илэрхийлнэ. Энэ нь proxy listener руу өөрөө TLS сесс нээх заавар биш.
Тохируулсан тохиргоог трафик илгээж буй хүсэлт эсвэл pool-д дамжуулна. Өөр pool тохиргоо ашигладаг дуудлагын хажууд тохиргоо үүсгэх нь тэр дуудлагыг өөрчлөхгүй.
Akka энэ транспортыг HTTPS хүсэлтэд зориулж баримтжуулсан. Очих цэгийг бодит HTTPS URI хэвээр хадгална. HTTP proxy жагсаалтын HTTP endpoint нь шаардлагатай CONNECT очих цэгийг зөвшөөрвөл транспортын нэр дэвшигч болно. Сервер талын bindFlow forwarding жишээ нь өөр HTTP сервис үүсгэж, өөр бүтээх асуудалд хариулдаг.