Magtakda ng timeout para sa proxy ng Apache HttpClient 5 na tumitigil sa CONNECT
Itakda ang socket I/O timeout ng connection manager para sa pagset ng tunnel, kasama ang hiwalay na timeout ng TCP connect.
Tinanggap ng proxy ang TCP ngunit hindi kailanman natapos ang tugon ng CONNECT. Hindi pa nagsisimula ang tugon ng website; ang timeout na nakatuon lamang sa huling tugon na iyon ay maaaring mag-iwan sa setup na ito na maghintay nang walang hangganan.
Para sa Apache HttpClient 5.3.1, itakda ang mga default ng connection manager:
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();Gamitin ang mga klase ng Apache HttpComponents 5 sa ilalim ng org.apache.hc, kasama ang Timeout sa utility package na core5. Panatilihin ang kliyente para sa trabaho nito at isara ito. Para sa isang hiwalay na pampublikong pagsubok ng HTTP, ang isang kandidato mula sa listahan ng HTTP proxy ay nagbibigay ng endpoint; panatilihing matatag ang destinasyon kapag inihahambing ang mga timeout.
| Limitasyon | Hinahawakang paghihintay |
|---|---|
| Timeout ng koneksyon | Pagtatatag ng koneksyon |
| Timeout ng socket | Default na kawalan ng aktibidad ng I/O, kabilang ang pagpapalitan ng CONNECT |
| Pagkuha mula sa pool / tugon ng application | Iba pang hiwalay na na-configure na yugto |
Pagkatapos ng CONNECT, maaaring kailanganin ng TLS ang sarili nitong limitasyon sa pagset sa pamamagitan ng TLS configuration ng HttpClient 5. Ihiwalay din ang kawalan ng aktibidad sa kabuuang deadline: ang paputol-putol na byte o paulit-ulit na pagpapalitan ng pagpapatotoo ay maaaring magpahaba ng kabuuang oras. Gamitin ang sinusuportahang patakaran sa deadline o pagkansela ng application para sa isang badyet para sa buong operasyon.