2012-02-10 8 views
15

एंड्रॉइड 2.1/2.2 पर मैं एंड्रॉइड एसडीके में DefaultHttpClient का उपयोग करता हूं।Android पर DefaultHttpClient में कनेक्शन और सॉकेट टाइमआउट के लिए डिफ़ॉल्ट मान क्या हैं?

अपाचे उनके डॉक्स में कहते हैं 2 समय समाप्ति देखते हैं:

  • CoreConnectionPNames.SO_TIMEOUT = 'http.socket.timeout': सॉकेट टाइमआउट मिलीसेकेंड में (SO_TIMEOUT), जिसके लिए समय समाप्ति है परिभाषित करता है डेटा की प्रतीक्षा कर रहे हैं या अलग-अलग डेटा पैकेट के बीच अधिकतम अवधि निष्क्रियता अलग-अलग रख सकते हैं)। शून्य का टाइमआउट मान एक अनंत टाइमआउट के रूप में व्याख्या किया जाता है। यह पैरामीटर java.lang.Integer प्रकार के मान की अपेक्षा करता है। यदि यह पैरामीटर सेट नहीं है, तो पढ़ें ऑपरेशन समय समाप्त नहीं होगा (अनंत टाइमआउट)।

  • CoreConnectionPNames.CONNECTION_TIMEOUT = 'http.connection.timeout': मिलीसेकेंड में समय समाप्ति को निर्धारित करता है जब तक एक कनेक्शन स्थापित है। शून्य का टाइमआउट मान एक अनंत टाइमआउट के रूप में व्याख्या किया जाता है। यह पैरामीटर java.lang.Integer प्रकार के मान की अपेक्षा करता है। यदि यह पैरामीटर सेट नहीं है, तो कनेक्ट ऑपरेशन का समय समाप्त नहीं होगा (अनंत टाइमआउट)।

मैंने इन 2 टाइमआउट के लिए डिफ़ॉल्ट मानों के लिए एंड्रॉइड स्रोतों को खोजने का प्रयास किया, लेकिन खोजने में असमर्थ था। क्या किसी को पता है कि इन टाइमआउट के लिए डिफ़ॉल्ट मान क्या हैं? मैं उन स्रोतों के लिए एक लिंक प्राप्त करना चाहता हूं जहां मूल्य निर्धारित किए गए हैं या इस पर एक आधिकारिक दस्तावेज़ है (बनाम सिर्फ एक राय सुनने के लिए)।

+0

सकता है इस मदद: 'लंबे समय समाप्त = stub._getServiceClient() .getOptions() .getTimeOutInMilliSeconds (); '? – Danijel

उत्तर

2

आप डिफ़ॉल्ट प्राप्त करने में सक्षम नहीं होगा (या जो भी मूल्यों को निर्धारित कर रहे हैं) की तरह कुछ का उपयोग कर निम्न:

DefaultHttpClient h; 
// ... 
Log.d(TAG, "http.socket.timeout: " + 
     h.getParams().getParameter("http.socket.timeout")); 
Log.d(TAG, "http.connection.timeout: " 
     + h.getParams().getParameter("http.connection.timeout")); 

आप वास्तव में को पता है कि मूलभूत मूल्यों चाहते हैं, तो यह एक शॉट के लायक है हैं (केवल मूल्यों को स्वयं स्थापित करने के विरोध में)।

+0

यह 'http.socket.timeout: null' और' http.connection.timeout: null' देता है। बस मामले में - मैंने इसे किसी भी संभावित रूप से प्रारंभिक राज्य को बाहर करने का अनुरोध करने के बाद इसे बुलाया। कोई बात नहीं धन्यवाद। –

10

बस कोड अनुभाग के नीचे नीचे का प्रयास करें:

import android.net.http.AndroidHttpClient; 
... 
     AndroidHttpClient h = AndroidHttpClient.newInstance("My http client"); 
     // ... 
     Log.d(TAG, "http.socket.timeout: " + h.getParams().getParameter("http.socket.timeout")); 
     Log.d(TAG, "http.connection.timeout: " + h.getParams().getParameter("http.connection.timeout")); 

यह अपने डिवाइस पर काम करता है:

12-02 16:27:54.119 D/Exam(17121): http.socket.timeout: 60000 
12-02 16:27:54.119 D/Exam(17121): http.connection.timeout: 60000 
+0

आपकी प्रतिक्रिया के लिए धन्यवाद। –

संबंधित मुद्दे