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 कॉन्फिगरेशनद्वारे स्वतःची सेटअप मर्यादा लागू शकते. तसेच निष्क्रियता आणि एकूण मुदत यात फरक करा: अधूनमधून येणारे बाइट किंवा वारंवार प्रमाणीकरण देवाणघेवाण एकूण वेळ वाढवू शकते. अॅप्लिकेशनचे समर्थित मुदत किंवा रद्द धोरण वापरा संपूर्ण ऑपरेशनसाठी एक बजेट.