अद्यतन: मिले जवाब अपने आप को, :-)
हाय नीचे देखें,एचटीपी क्लाइंट का उपयोग कर HTTP पोस्ट अनुरोध 2 सेकंड लेते हैं, क्यों?
I'am वर्तमान कि पृष्ठभूमि HTTP पोस्ट और AsyncTask का उपयोग करने में सामान प्रस्तुत एक Android एप्लिकेशन कोडिंग। मैं इसके लिए org.apache.http.client पैकेज का उपयोग करता हूं। मैंने this example पर अपना कोड आधारित किया।
मूल रूप से, मेरे कोड इस तरह दिखता है:
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.1.137:8880/form");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
Log.e(TAG,e.toString());
} catch (IOException e) {
Log.e(TAG,e.toString());
}
}
समस्या यह है कि httpclient.execute (..) रेखा के आसपास 1.5 3 सेकंड लेता है, और मैं क्यों समझ में नहीं आता। बस HTTP के साथ एक पृष्ठ का अनुरोध करने के लिए लगभग 80 एमएस लगता है, इसलिए समस्या नेटवर्क विलंबता प्रतीत नहीं होती है।
समस्या सर्वर की ओर से प्रतीत नहीं होती है, मैंने डेटा को http://www.disney.com/ पर धीमे परिणामों के साथ पोस्ट करने का भी प्रयास किया है। और फ़ायरबग स्थानीय रूप से मेरे सर्वर पर डेटा पोस्ट करते समय 1 एमएस प्रतिक्रिया समय दिखाता है।
यह एम्यूलेटर पर और मेरे नेक्सस वन (एंड्रॉइड 2.2 के साथ दोनों) पर होता है।
यदि आप पूरा कोड देखना चाहते हैं, तो मैंने इसे GitHub पर रखा है।
यह बटन के धक्का पर AsyncTask का उपयोग करके पृष्ठभूमि में HTTP पोस्ट करने के लिए सिर्फ एक डमी प्रोग्राम है। यह मेरा पहला एंड्रॉइड ऐप है, और मेरा पहला जावा कोड लंबे समय तक है। और गोपनीय रूप से, स्टैक ओवरफ्लो पर मेरा पहला प्रश्न ;-)
कोई विचार क्यों httpclient.execute (httppost) इतना लंबा लगता है?
मुझे यह वही समस्या का सामना करना पड़ रहा है, सिवाय इसके कि बहुत बुरा। यह 'HttpPost' को समाप्त करने के लिए 20 सेकंड तक भी ले सकता है।मैंने आपके फिक्स की कोशिश की लेकिन यह मदद नहीं कर सका। – theblang