मैं HTTPClient का उपयोग कर थ्रेड सुरक्षित, एसिंक्रोनस HTTP अनुरोधों को चलाने के लिए चाहता हूं। मैंने देखा कि यह मेरे CONNECTION_TIMEOUT
तर्क का सम्मान नहीं करता है।मैं अपाचे http क्लाइंट में कनेक्शन टाइमआउट कैसे सेट करूं?
कोड कोल्डफ्यूजन/जावा हाइब्रिड है।
client = loader.create("org.apache.http.impl.nio.client.DefaultHttpAsyncClient").init();
CoreConnectionPNames = loader.create("org.apache.http.params.CoreConnectionPNames");
client.getParams()
.setIntParameter(JavaCast("string", CoreConnectionPNames.SO_TIMEOUT), 10)
.setIntParameter(JavaCast("string", CoreConnectionPNames.CONNECTION_TIMEOUT), 10);
client.start();
request = loader.create("org.apache.http.client.methods.HttpGet").init("http://www.google.com");
future = client.execute(request, javacast("null", ""));
try {
response = future.get();
}
catch(e any) {}
client.getConnectionManager().shutdown();
मैं CONNECTION_TIMEOUT के लिए क्या की आपूर्ति के बावजूद, अनुरोध हमेशा 200 ठीक लौट आते हैं। नीचे आउटपुट की जांच करें।
- मैं एक प्रभावी कनेक्शन टाइमआउट कैसे सेट करूं?
- क्या CONNECTION_TIMEOUT कुछ भी करता है?
आउटपुट
200 OK http://www.google.com/
200 OK http://www.google.com/
[snip]
5 requests using Async Client in: 2308 ms
धन्यवाद। मैं आपका कोड आज़मा रहा हूं, लेकिन इसे सीएफ में अनुवाद करने के लिए अतिरिक्त काम लगता है। तो मेरे साथ बेकार है। पहले दो लिंक्स में 'HTTPConnectionParams' उस ऑब्जेक्ट को संदर्भित करता है जिसे मुझे बनाने की आवश्यकता है। Porbably 'org.apache.http.params। *' लेकिन 'सेटकनेक्शनटाइमआउट' पर आपके द्वारा प्रदान किए गए 'पैराम्स' तर्क कहां से आते हैं? मैं इसे वहां फेंक नहीं सकता, अन्यथा यह 'पैराम्स को अनिर्धारित' त्रुटि फेंक देगा ... क्षमा करें अगर यह लगता है, लेकिन जावा/सीएफ हाइब्रिड कोड के साथ काम करना कठिन है। साथ ही, योजना रजिस्ट्री ऑब्जेक्ट आवश्यक है, क्या मैं इसे छोड़ सकता हूं? – Mohamad
एचटीपी पैराम्स पैराम्स = नया बेसिकहटपैरम्स(); यहां कुछ और जानकारी है: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/index.html और जावाडोक यहां है: http://hc.apache.org/httpcomponents-core-ga /httpcore/apidocs/org/apache/http/params/HttpParams.html – Seth