Časový limit pro proxy Apache HttpClient 5, která se zasekne během CONNECT
Nastavte časový limit socket I/O správce připojení pro vytvoření tunelu vedle samostatného časového limitu TCP připojení.
Proxy přijala TCP, ale nikdy nedokončila odpověď CONNECT. Odpověď webu ještě nezačala; časový limit zaměřený pouze na tuto pozdější odpověď může nechat toto navazování čekat neomezeně.
Pro Apache HttpClient 5.3.1 nastavte výchozí hodnoty správce připojení:
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();Použijte třídy Apache HttpComponents 5 pod org.apache.hc, s Timeout v pomocném balíčku core5. Klienta zachovejte pro jeho práci a zavřete ho. Pro izolovaný veřejný HTTP test poskytuje koncový bod kandidát ze seznamu HTTP proxy; při porovnávání časových limitů udržujte cíl neměnný.
| Limit | Řešené čekání |
|---|---|
| Časový limit připojení | Navázání spojení |
| Časový limit socketu | Výchozí nečinnost I/O včetně výměny CONNECT |
| Získání z fondu / odpověď aplikace | Další samostatně konfigurované fáze |
Po CONNECT může TLS potřebovat vlastní limit navázání prostřednictvím konfigurace TLS v HttpClient 5. Rozlišujte také nečinnost od celkového termínu: přerušované bajty nebo opakované výměny ověřování mohou prodloužit celkový čas. Použijte podporovanou zásadu termínu nebo zrušení aplikace pro jeden rozpočet na celou operaci.