2012-02-06 12 views
13

zaman aşımına bağlayın. Android 2.x aşağıdaki kodu kullanarakAndroid 4.0 org.apache.http.conn.ConnectTimeoutException: Ben ICS benim uygulamaları test beri garip bir sorunla karşı karşıya am için ...

(bazen zaman aşımı olur ama çok az kez) iyi çalışıyor: ICS üzerinde

HttpParams httpParameters = new BasicHttpParams(); 
    HttpConnectionParams.setConnectionTimeout(httpParameters, CONNECTION_TIMEOUT); 
    HttpConnectionParams.setSoTimeout(httpParameters, SOCKET_TIMEOUT); 

    final DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); 

    // Create a new HttpClient and Post Header 
    HttpPost httpPost = new HttpPost(url); 

    HttpResponse response = null; 
    try { 
     if (keys != null) { 
      httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8)); 
     } 

     // Cookies 
     // Create a local instance of cookie store 
     if (checkCookieValues()) { 
      BasicClientCookie cookieSession = new BasicClientCookie(mCookieName, mCookieValue); 
      cookieSession.setDomain(mCookieDomain); 
      httpClient.getCookieStore().clear(); 
      httpClient.getCookieStore().addCookie(cookieSession); 
     } 

     // Execute HTTP Post Request 
     response = httpClient.execute(httpPost); 

     httpClient.getConnectionManager().shutdown(); 

    } catch (UnknownHostException e) { 
     Log.e(TAG, "Error when calling postData", e); 
    } catch (SocketTimeoutException e) { 
     Log.e(TAG, "Error when calling postData", e); 
    } catch (ClientProtocolException e) { 
     Log.e(TAG, "Error when calling postData", e); 
    } catch (SocketException e) { 
     Log.e(TAG, "Error when calling postData", e); 
    } catch (IOException e) { 
     Log.e(TAG, "Error when calling postData", e); 
    } 

    return response; 

, en kısa sürede istisna bir zaman aşımına alır almaz, bütün gelecek çağrılar dönecektir bir zaman aşımı istisnası.

Timeout exception received : 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980): org.apache.http.conn.ConnectTimeoutException: Connect to /78.109.91.193:80 timed out 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at com.kreactive.planningtv.service.PlanningTVService.postData(PlanningTVService.java:1554) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at com.kreactive.planningtv.service.PlanningTVService.fbConnect(PlanningTVService.java:1897) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at com.kreactive.planningtv.service.PlanningTVService.onHandleIntent(PlanningTVService.java:569) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at android.os.Handler.dispatchMessage(Handler.java:99) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at android.os.Looper.loop(Looper.java:137) 
    02-06 19:06:05.425: E/PLTV:PlanningTVService(2980):  at android.os.HandlerThread.run(HandlerThread.java:60) 

Sorunla karşılaşan kimse var mı? Bu problemden kaçınmanın bir yolu var mı? Kontrol ettim ve benzer bir soru bulamadım (özellikle ICS için).

Yanıtlarınız için teşekkürler!

+3

Eğer benzersiz dizisindeki bu kodu çalıştırmak mı bu – CoronaPintu

+0

türlü çözüme alabilirim? –

+0

Arka plan iş parçacığımda benzer bir kod var ve hedefimi 4.X'e değiştirdiğimde aynı sorunu farkettim. ConnectTimeoutExceptions rastgele, ama sık sık atılır. Bu, 2.X – Chicowitz

cevap

-3

Apache http yığını kaldırıldı ve ICS'de bozuldu. Chromium artık standarttır. V8'in cihazlarınızın varsayılan java script motoru olduğundan emin olun. Eğer kullanıcı arayüzü iş parçacığı üzerinde uzun süren işlemler gerçekleştirirken kaçınmalıdır bir Android uygulaması dahilinde

+0

'u hedeflerken bu bir sorun değildi. Bunun alakalı olduğunu düşünmüyorum. Yakında test edeceğimiz olası bir cevabı almak için yukarıdaki gibi kontrol edin. Her neyse, cevabın için teşekkürler. – Seynorth

-1

. Buna dosya ve ağ erişimi dahildir. Hatalı şeyler yapmaktan kaçınmak için uygulamanızda ilkeleri ayarlamanıza olanak sağlar. 'dan itibaren Android 3.0 (Honeycomb) StrictMode, ağ kullanıcı arabirimi iş parçacığında erişilirse, bir NetworkOnMainThreadException özel durumuyla çakışma olacak şekilde yapılandırılmıştır.

bir arka plan iş parçacığı ağ erişimi yapmalıdır iken.

Android 3.0 veya daha yüksek hedefliyorsanız, bu etkinlik için onCreate() yöntemin başında aşağıdaki kodu aracılığıyla kapalı kontrol dışı bırakabilirsiniz.

StrictMode.ThreadPolicy policy = new StrictMode. 
ThreadPolicy.Builder().permitAll().build(); 
StrictMode.setThreadPolicy(policy); 

Bunu kapatmak önerilmez.

+0

, oy vermeyi reddeden, burada sebepten bahseder misiniz? – akshay

İlgili konular