HTTPS 요청을 위한 Akka HTTP의 CONNECT 전송
프록시 전송을 연결 풀 설정에 연결하고 터널이 필요한 요청에 해당 설정을 전달하세요.
Akka HTTP HTTPS 요청의 경우 클라이언트 전송이 포워드 프록시를 통해 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라는 이름은 HTTP CONNECT 프록시를 통해 HTTPS 대상 연결을 설정하는 것을 의미합니다. 프록시 리스너 자체에 TLS 세션을 여는 지시는 아닙니다.
사용자 지정한 설정을 트래픽을 보내는 요청이나 풀에 전달하세요. 다른 풀 구성을 사용하는 호출 옆에서 설정을 만들면 그 호출은 변경되지 않습니다.
Akka는 HTTPS 요청에 대해 이 전송을 문서화합니다. 대상을 실제 HTTPS URI로 유지하세요. HTTP 프록시 목록의 HTTP 엔드포인트는 필요한 CONNECT 대상이 허용될 때 이 전송의 후보입니다. 서버 측 bindFlow 전달 예제는 다른 HTTP 서비스를 만들고 다른 구성 문제에 답합니다.