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