CONNECT సమయంలో నిలిచిపోయే Apache HttpClient 5 ప్రాక్సీకి టైమౌట్
టన్నెల్ సెటప్ కోసం కనెక్షన్ మేనేజర్ యొక్క సాకెట్ 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 ప్రాక్సీ జాబితా నుండి ఒక అభ్యర్థి ఎండ్పాయింట్ను అందిస్తాడు; టైమౌట్లను పోల్చేటప్పుడు గమ్యాన్ని స్థిరంగా ఉంచండి.
| పరిమితి | పరిష్కరించిన నిరీక్షణ |
|---|---|
| కనెక్ట్ టైమౌట్ | కనెక్షన్ స్థాపన |
| సాకెట్ టైమౌట్ | CONNECT మార్పిడితో సహా డిఫాల్ట్ I/O నిష్క్రియత |
| పూల్ నుండి పొందడం / అప్లికేషన్ ప్రతిస్పందన | విడిగా కాన్ఫిగర్ చేసిన ఇతర దశలు |
CONNECT తర్వాత, TLS తన సొంత సెటప్ పరిమితిని HttpClient 5 యొక్క TLS కాన్ఫిగరేషన్ ద్వారా అవసరం పడవచ్చు. నిష్క్రియత మరియు మొత్తం గడువు మధ్య కూడా తేడా చూపండి: అడపాదడపా వచ్చే బైట్లు లేదా పునరావృత ప్రామాణీకరణ మార్పిడులు మొత్తం సమయాన్ని పెంచగలవు. అప్లికేషన్ మద్దతు ఇచ్చే గడువు లేదా రద్దు విధానాన్ని ఉపయోగించండి మొత్తం ఆపరేషన్ కోసం ఒక బడ్జెట్.