انتقال 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 مستند میکند. مقصد را بهصورت URI واقعی HTTPS آن نگه دارید. یک نقطه پایانی HTTP از فهرست پروکسی HTTP زمانی که مقصد CONNECT لازم را مجاز کند، نامزد انتقال است. نمونه افتراق bindFlow در سمت سرور، سرویس HTTP دیگری میسازد و به مسئله ساخت متفاوتی پاسخ میدهد.