Ժամկետի սահմանում CONNECT-ի ընթացքում կանգ առնող Apache HttpClient 5 պրոքսիի համար
Սահմանեք միացումների կառավարչի socket 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 պրոքսիների ցանկ-ից թեկնածուն ապահովում է վերջնակետը. ժամկետները համեմատելիս նպատակակետը պահեք անփոփոխ։
| Սահման | Լուծված սպասումը |
|---|---|
| Միացման ժամկետ | Միացման հաստատում |
| Socket ժամկետ | Լռելյայն I/O անգործություն՝ ներառյալ CONNECT փոխանակումը |
| Լողավազանից ստացում / հավելվածի պատասխան | Այլ առանձին կարգավորված փուլեր |
CONNECT-ից հետո TLS-ը կարող է իր սեփական կարգավորման սահմանը պահանջել HttpClient 5-ի TLS կարգավորումների միջոցով։ Տարբերակեք նաև անգործությունը ընդհանուր վերջնաժամկետից. ընդհատվող բայթերը կամ կրկնվող նույնականացման փոխանակումները կարող են երկարացնել ընդհանուր ժամանակը։ Օգտագործեք հավելվածի աջակցվող վերջնաժամկետի կամ չեղարկման քաղաքականությունը մեկ բյուջե ամբողջ գործողության համար.