עבור בקשת HTTPS של Akka HTTP, הגדירו את תעבורת הלקוח כך שתקים CONNECT דרך ה-proxy הקדמי:

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 דרך proxy מסוג HTTP CONNECT. זו אינה הוראה לפתוח הפעלת TLS מול מאזין ה-proxy עצמו.

העבירו את ההגדרות המותאמות לבקשה או למאגר ששולח את התעבורה. בניית הגדרות לצד קריאה שמשתמשת בתצורת מאגר אחרת משאירה את הקריאה הזו ללא שינוי.

Akka מתעד תעבורה זו עבור בקשות HTTPS. שמרו על היעד כ-URI ה-HTTPS האמיתי שלו. נקודת קצה של HTTP מרשימת ה-proxy של HTTP היא מועמדת לתעבורה כאשר היא מתירה את יעד ה-CONNECT הנדרש. דוגמת העברה של bindFlow בצד השרת יוצרת שירות HTTP אחר ועונה על בעיית בנייה אחרת.

מאמרים קשורים