जब मैं HttpClient को को यूआरएल से कनेक्ट करने का उपयोग करने का प्रयास करता हूं तो मैं किसी समस्या में भाग रहा हूं। एक कनेक्शन टाइमआउट सेट करने के बाद भी, HTTP कनेक्शन में समय-समय पर अधिक समय लग रहा है।http कनेक्शन टाइमआउट समस्या
int timeoutConnection = 5000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
यह ज्यादातर समय सही काम करता है। हालांकि, हर बार एक बार, http कनेक्शन हमेशा के लिए चलता है और setconnectiontimeout
को अनदेखा करता है, जब फोन वाईफ़ाई से कनेक्ट होता है, और फ़ोन निष्क्रिय हो रहा था।
तो फ़ोन निष्क्रिय होने के बाद, पहली बार जब मैं कनेक्ट करने का प्रयास करता हूं, तो http कनेक्शन setconnectiontimeout
को अनदेखा करता है और इसे रद्द करने के बाद हमेशा के लिए चलता है और फिर कोशिश करता है, यह हर बार आकर्षण की तरह काम करता है। लेकिन वह एक बार जो काम नहीं करता है, यह threadtimeout
त्रुटि बनाता है, मैंने एक अलग थ्रेड का उपयोग करने की कोशिश की, यह काम करता है, लेकिन मुझे पता है कि थ्रेड लंबे समय तक चल रहा है।
मैं समझता हूं कि वाईफ़ाई निष्क्रिय होने पर सो जाता है, लेकिन मुझे नहीं पता कि यह setconnectiontimeout
को अनदेखा क्यों कर रहा है।
कोई भी मदद कर सकता है, आईडी वास्तव में सराहना की।
आप किस मंच के बारे में बात कर रहे हैं? –
HTTP कनेक्शन अपने टाइमआउट को "अनदेखा" कर सकता है क्योंकि यह वास्तव में सोचता है कि यह कनेक्ट है, उदा। प्रारंभिक हैंडशेक सफल हुआ लेकिन पाइप (या आपके मामले में, हवा) से कुछ और नहीं आता है। हो सकता है कि आपके फोन में कनेक्शन स्वीकार करने की प्रवृत्ति हो लेकिन निष्क्रिय होने पर तुरंत उनके बारे में भूल जाए। इस समस्या से पहले आदान-प्रदान किए गए व्यक्तिगत फ्रेम को कैप्चरिंग और जांचना शायद अधिक कुछ बताएगा। –