Jak ustawić limit czasu dla gniazd SSL dla blokowania odczytu/zapisu za pomocą ThreadSafeClientConnectionManaget? Odkryłem, że utrata łączności z siecią podczas odczytywania lub zapisywania gniazda SSL skutkuje 15-minutowym przekroczeniem czasu na urządzeniach z Androidem 2.2 i 2.3.Android: Jak ustawić limit czasu dla gniazd SSL dla blokowania odczytu/zapisu za pomocą ThreadSafeClientConnectionManager?
ustawić następujące limity czasu na moim httpclient:
mParams = new BasicHttpParams();
HttpProtocolParams.setVersion(mParams, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(mParams, "UTF-8");
HttpProtocolParams.setUserAgent(mParams, USER_AGENT);
HttpConnectionParams.setConnectionTimeout(mParams, TIME_OUT);
HttpConnectionParams.setSoTimeout(mParams, TIME_OUT);
ConnManagerParams.setTimeout(mParams, TIME_OUT);
final SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme(HTTP_SCHEME, PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme(HTTPS_SCHEME, SSLSocketFactory.getSocketFactory(), 443));
final ThreadSafeClientConnManager manager = new ThreadSafeClientConnManager(mParams, registry);
mClient = new DefaultHttpClient(manager, mParams);
I wtedy użyć klienta, aby wykonać żądania http put z podmiotem plików. Jeśli włączam tryb samolotowy podczas ładowania w połowie, odczekaj 15-30 sekund, a następnie wyłącz tryb samolotowy, w którym gniazdo utknie w czytaniu lub zapisie i nie będzie limitu czasu przez 15 minut.
Ponieważ musimy wspierać Froyo i są problemy z HttpURLConnection w tej wersji, nie będziemy zmieniać interfejsów API. Ponadto mamy sporo niestandardowego kodu wokół klienta Apache, który nie ma odpowiednika w HttpURLConnection do ICS. Dzięki za sugestię. – Todd