Για ένα αίτημα 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. Διατηρήστε τον προορισμό ως το πραγματικό HTTPS URI του. Ένα τελικό σημείο HTTP από τη λίστα διαμεσολαβητών HTTP είναι υποψήφιο για τη μεταφορά όταν επιτρέπει τον απαιτούμενο προορισμό CONNECT. Ένα παράδειγμα προώθησης bindFlow στην πλευρά του διακομιστή δημιουργεί άλλη υπηρεσία HTTP και απαντά σε διαφορετικό πρόβλημα κατασκευής.

Σχετικά άρθρα