Proxy-ul a acceptat TCP dar nu a finalizat niciodată răspunsul CONNECT. Răspunsul site-ului nu a început încă; un timp limită îndreptat doar spre acel răspuns ulterior poate lăsa această configurare să aștepte nemărginit.

Pentru Apache HttpClient 5.3.1, setați valorile implicite ale managerului de conexiuni:

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

Folosiți clasele Apache HttpComponents 5 sub org.apache.hc, cu Timeout în pachetul utilitar core5. Păstrați clientul pentru munca lui și închideți-l. Pentru un test HTTP public izolat, un candidat din lista de proxy-uri HTTP furnizează punctul final; mențineți destinația stabilă când comparați timpii limită.

LimităAșteptarea acoperită
Timp limită de conectareStabilirea conexiunii
Timp limită socketInactivitate I/O implicită, inclusiv schimbul CONNECT
Obținere din pool / răspunsul aplicațieiAlte etape configurate separat

După CONNECT, TLS poate avea nevoie de propria limită de stabilire prin configurația TLS a HttpClient 5. De asemenea, distingeți inactivitatea de un termen total: octeții intermitenți sau schimburile repetate de autentificare pot prelungi timpul total. Folosiți politica de termen sau anulare acceptată de aplicație pentru un buget pentru întreaga operațiune.

Articole similare