Transport CONNECT Akka HTTP untuk Permintaan HTTPS
Lampirkan transport proxy ke pengaturan connection pool dan teruskan pengaturan itu ke permintaan yang membutuhkan terowongan.
Untuk permintaan HTTPS Akka HTTP, konfigurasikan transport kliennya agar membangun CONNECT melalui proxy penerus:
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)
Aplikasi menyediakan ActorSystem yang sudah ada sebagai system dan mempertahankan siklus hidup aliran dan entitas respons yang biasa. Konsumsi atau buang entitas respons yang dikembalikan sesuai kebutuhan agar koneksi dapat dilepaskan.
Nama httpsProxy di sini merujuk pada pembentukan koneksi tujuan HTTPS melalui proxy HTTP CONNECT. Ini bukan instruksi untuk membuka sesi TLS ke pendengar proxy itu sendiri.
Teruskan pengaturan yang disesuaikan ke permintaan atau pool yang mengirim lalu lintas. Membangun pengaturan di samping panggilan yang memakai konfigurasi pool lain membuat panggilan itu tidak berubah.
Akka mendokumentasikan transport ini untuk permintaan HTTPS. Pertahankan tujuan sebagai URI HTTPS yang sebenarnya. Titik akhir HTTP dari daftar proxy HTTP merupakan kandidat untuk transport ini bila mengizinkan tujuan CONNECT yang diperlukan. Contoh penerusan bindFlow di sisi server membuat layanan HTTP lain dan menjawab masalah konstruksi yang berbeda.