CONNECT 중 멈추는 Apache HttpClient 5 프록시에 대한 시간 초과 설정
터널 설정을 위해 연결 관리자의 소켓 I/O 시간 초과를 별도의 TCP 연결 시간 초과와 함께 설정합니다.
프록시가 TCP는 받아들였지만 CONNECT 응답을 끝내지 못했습니다. 웹사이트 응답은 아직 시작되지 않았습니다. 그 이후 응답만 겨냥한 시간 초과는 이 설정 단계를 무한정 기다리게 할 수 있습니다.
Apache HttpClient 5.3.1에서는 연결 관리자의 기본값을 설정합니다:
var connection = ConnectionConfig.custom()
.setConnectTimeout(Timeout.ofSeconds(5))
.setSocketTimeout(Timeout.ofSeconds(10))
.build();
var manager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connection)
.build();
var client = HttpClients.custom()
.setConnectionManager(manager)
.setProxy(new HttpHost("http", "proxy.example", 8080))
.build();Apache HttpComponents 5 클래스를 org.apache.hc 아래에서 사용하고, Timeout 는 core5 유틸리티 패키지에 있습니다. 클라이언트는 작업에 사용한 뒤 닫습니다. 격리된 공개 HTTP 테스트에서는 HTTP 프록시 목록 의 후보가 엔드포인트를 제공합니다. 시간 초과를 비교할 때 대상은 일정하게 유지하세요.
| 한도 | 다루는 대기 |
|---|---|
| 연결 시간 초과 | 연결 설정 |
| 소켓 시간 초과 | CONNECT 교환을 포함한 기본 I/O 비활성 |
| 풀 확보 / 애플리케이션 응답 | 별도로 구성된 기타 단계 |
CONNECT 후에는 TLS가 HttpClient 5의 TLS 구성으로 자체 설정 한도가 필요할 수 있습니다. 또한 비활성과 전체 기한을 구분하세요. 간헐적인 바이트나 반복되는 인증 교환은 총 시간을 늘릴 수 있습니다. 애플리케이션이 지원하는 기한 또는 취소 정책을 사용하여 전체 작업을 위한 하나의 예산.