HTTPS ਬੇਨਤੀਆਂ ਲਈ Akka HTTP ਦਾ CONNECT ਟ੍ਰਾਂਸਪੋਰਟ
proxy ਟ੍ਰਾਂਸਪੋਰਟ ਨੂੰ connection-pool ਸੈਟਿੰਗਾਂ ਨਾਲ ਜੋੜੋ ਅਤੇ ਉਹ ਸੈਟਿੰਗਾਂ ਉਸ ਬੇਨਤੀ ਨੂੰ ਦਿਓ ਜਿਸਨੂੰ ਟਨਲ ਚਾਹੀਦਾ ਹੈ।
Akka HTTP ਦੀ HTTPS ਬੇਨਤੀ ਲਈ, forward proxy ਰਾਹੀਂ CONNECT ਸਥਾਪਿਤ ਕਰਨ ਲਈ ਇਸਦਾ client transport ਸੰਰਚਿਤ ਕਰੋ:
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 ਨਾਂ HTTP CONNECT proxy ਰਾਹੀਂ HTTPS ਮੰਜ਼ਿਲ ਕਨੈਕਸ਼ਨ ਸਥਾਪਿਤ ਕਰਨ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ proxy listener ਨਾਲ ਹੀ TLS ਸੈਸ਼ਨ ਖੋਲ੍ਹਣ ਦੀ ਹਦਾਇਤ ਨਹੀਂ ਹੈ।
ਅਨੁਕੂਲਿਤ ਸੈਟਿੰਗਾਂ ਟ੍ਰੈਫਿਕ ਭੇਜਣ ਵਾਲੀ ਬੇਨਤੀ ਜਾਂ pool ਨੂੰ ਦਿਓ। ਕਿਸੇ ਹੋਰ pool ਸੰਰਚਨਾ ਵਰਤਣ ਵਾਲੀ ਕਾਲ ਦੇ ਕੋਲ ਸੈਟਿੰਗਾਂ ਬਣਾਉਣ ਨਾਲ ਉਹ ਕਾਲ ਨਹੀਂ ਬਦਲਦੀ।
Akka ਇਸ ਟ੍ਰਾਂਸਪੋਰਟ ਨੂੰ HTTPS ਬੇਨਤੀਆਂ ਲਈ ਦਸਤਾਵੇਜ਼ ਕਰਦਾ ਹੈ। ਮੰਜ਼ਿਲ ਨੂੰ ਇਸਦੇ ਅਸਲ HTTPS URI ਵਜੋਂ ਰੱਖੋ। HTTP proxy ਸੂਚੀ ਤੋਂ HTTP endpoint ਉਦੋਂ ਟ੍ਰਾਂਸਪੋਰਟ ਲਈ ਉਮੀਦਵਾਰ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਉਹ ਲੋੜੀਂਦੀ CONNECT ਮੰਜ਼ਿਲ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸਰਵਰ-ਪਾਸੇ bindFlow forwarding ਉਦਾਹਰਨ ਇੱਕ ਹੋਰ HTTP ਸੇਵਾ ਬਣਾਉਂਦੀ ਹੈ ਅਤੇ ਵੱਖਰੀ ਬਣਤਰ ਸਮੱਸਿਆ ਦਾ ਜਵਾਬ ਦਿੰਦੀ ਹੈ।