ການໃຊ້ CONNECT transport ຂອງ Akka HTTP ສຳລັບຄຳຮ້ອງ HTTPS
ເຊື່ອມ transport ຂອງ proxy ເຂົ້າກັບການຕັ້ງຄ່າ connection pool ແລ້ວສົ່ງການຕັ້ງຄ່ານັ້ນໃຫ້ຄຳຮ້ອງທີ່ຕ້ອງການ tunnel.
ສຳລັບຄຳຮ້ອງ HTTPS ຂອງ Akka HTTP, ໃຫ້ຕັ້ງຄ່າ client transport ເພື່ອສ້າງ CONNECT ຜ່ານ forward 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 ແລະ ຮັກສາວົງຈອນ stream ແລະ response-entity ຕາມປົກກະຕິ. ໃຫ້ບໍລິໂພກ ຫຼື ຖິ້ມ response entity ທີ່ສົ່ງກັບມາຢ່າງເໝາະສົມ ເພື່ອໃຫ້ການເຊື່ອມຕໍ່ຖືກປ່ອຍ.
ຊື່ httpsProxy ທີ່ນີ້ໝາຍເຖິງການສ້າງການເຊື່ອມຕໍ່ປາຍທາງ HTTPS ຜ່ານ HTTP CONNECT proxy. ມັນບໍ່ແມ່ນຄຳສັ່ງໃຫ້ເປີດ session TLS ໄປຫາ proxy listener ໂດຍກົງ.
ສົ່ງການຕັ້ງຄ່າທີ່ປັບແຕ່ງແລ້ວເຂົ້າຄຳຮ້ອງ ຫຼື pool ທີ່ສົ່ງທຣາຟຟິກ. ການສ້າງການຕັ້ງຄ່າຄຽງຂ້າງການເອີ້ນທີ່ໃຊ້ pool config ອື່ນ ຈະບໍ່ປ່ຽນແປງການເອີ້ນນັ້ນ.
Akka ໄດ້ອະທິບາຍ transport ນີ້ສຳລັບຄຳຮ້ອງ HTTPS. ໃຫ້ຮັກສາປາຍທາງເປັນ HTTPS URI ທີ່ແທ້ຈິງ. ປາຍທາງ HTTP ຈາກ ລາຍຊື່ HTTP proxy ເປັນຜູ້ສະໝັກສຳລັບ transport ເມື່ອມັນອະນຸຍາດປາຍທາງ CONNECT ທີ່ຕ້ອງການ. ຕົວຢ່າງ bindFlow forwarding ຝັ່ງ server ສ້າງ HTTP service ອີກອັນໜຶ່ງ ແລະ ຕອບບັນຫາການສ້າງທີ່ແຕກຕ່າງ.