بالنسبة إلى طلب 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 أخرى ويجيب عن مشكلة بناء مختلفة.

مقالات ذات صلة