Proxy je sprejel TCP, vendar nikoli ni dokončal odgovora CONNECT. Odgovor spletnega mesta se še ni začel; časovna omejitev, usmerjena le na ta poznejši odgovor, lahko pusti to vzpostavitev v neskončnem čakanju.

Za Apache HttpClient 5.3.1 nastavite privzete vrednosti upravitelja povezav:

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();

Uporabite razrede Apache HttpComponents 5 pod org.apache.hc, s Timeout v pomožnem paketu core5. Ohranite odjemalca za njegovo delo in ga zaprite. Za izoliran javni test HTTP kandidat s seznama proxyjev HTTP zagotavlja končno točko; pri primerjavi časovnih omejitev ohranite cilj nespremenjen.

OmejitevObravnavano čakanje
Časovna omejitev povezaveVzpostavitev povezave
Časovna omejitev vtičnicePrivzeta neaktivnost I/O, vključno z izmenjavo CONNECT
Pridobitev iz zbirke / odgovor aplikacijeDruge ločeno konfigurirane faze

Po CONNECT lahko TLS potrebuje svojo omejitev vzpostavitve prek konfiguracije TLS v HttpClient 5. Razlikujte tudi neaktivnost od skupnega roka: prekinjeni bajti ali ponavljajoče se izmenjave preverjanja lahko podaljšajo skupni čas. Uporabite podprto politiko roka ali preklica aplikacije za en proračun za celotno operacijo.

Sorodni članki