Güncelleme: Bulunan kendim
Hi :-) aşağıya bakınız cevap, HTTP Post istekleri 2 saniye sürüyor, neden?
bi'şey şu anda HTTP Post ve AsyncTask kullanarak arka planda şeyler gönderen bir android uygulaması kodlama. Bunun için org.apache.http.client paketini kullanıyorum. Kodumu this example'a göre temel aldım.Temelde, benim kod şöyle görünür:
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());
}
}
sorun httpclient.execute (..) çizgi 3 saniye yaklaşık 1.5 almasıdır ve neden anlamıyorum. Sadece HTTP Get ile bir sayfa istemek yaklaşık 80 ms alır, bu yüzden sorun ağ gecikme kendisi gibi görünmüyor.
Sorun, sunucu tarafında da görünmüyor, aynı şekilde yavaş sonuçlarla http://www.disney.com/'a POST verilerini denedim. Firebug, verileri sunucuya yerel olarak gönderirken 1 ms yanıt süresini gösterir.
Bu, Emulator'de ve Nexus One'ımda (her ikisi de Android 2.2 ile) gerçekleşir.
Kodun tamamını incelemek isterseniz, GitHub numaralı telefona koydum.
Sadece bir tuşa basarak AsyncTask kullanarak arka planda HTTP Post yapmak için bir kukla program. Bu benim ilk Android uygulaması ve uzun bir süre için ilk java kodum. Ve incitentially, ayrıca benim ilk soru benim Stackoverflow ;-)
httpclient.execute (httppost) neden bu kadar uzun sürüyor?
Ben de aynı sorunu yaşıyorum, çok daha kötü. Bir "HttpPost" işlemini bitirmek için 20 saniyeyi bile alabilir.Fikrini denedim ama yardım etmedi. – theblang