Časový limit pre proxy Apache HttpClient 5, ktorá sa zasekne počas CONNECT
Nastavte časový limit socket I/O správcu pripojení na vytvorenie tunela popri samostatnom časovom limite TCP pripojenia.
Proxy prijala TCP, ale nikdy nedokončila odpoveď CONNECT. Odpoveď webu ešte nezačala; časový limit zameraný len na túto neskoršiu odpoveď môže nechať toto nadväzovanie čakať neobmedzene.
Pre Apache HttpClient 5.3.1 nastavte predvolené hodnoty správcu pripojení:
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žite triedy Apache HttpComponents 5 pod org.apache.hc, s Timeout v pomocnom balíku core5. Klienta zachovajte pre jeho prácu a zatvorte ho. Pre izolovaný verejný HTTP test poskytuje koncový bod kandidát zo zoznamu HTTP proxy; pri porovnávaní časových limitov udržujte cieľ nemenný.
| Limit | Riešené čakanie |
|---|---|
| Časový limit pripojenia | Nadviazanie spojenia |
| Časový limit socketu | Predvolená nečinnosť I/O vrátane výmeny CONNECT |
| Získanie z fondu / odpoveď aplikácie | Ďalšie samostatne konfigurované fázy |
Po CONNECT môže TLS potrebovať vlastný limit nadviazania prostredníctvom konfigurácie TLS v HttpClient 5. Rozlišujte aj nečinnosť od celkového termínu: prerušované bajty alebo opakované výmeny overovania môžu predĺžiť celkový čas. Použite podporovanú zásadu termínu alebo zrušenia aplikácie pre jeden rozpočet na celú operáciu.