Я работаю над приложением, которое загружает данные с веб-сервера. Кажется, поначалу данные загружаются без каких-либо проблем, но несколько дней назад я начал получать такие исключения: javax.net.ssl.SSLException: ошибка чтения: ssl=0x7a6588: ошибка ввода-вывода во время системного вызова, сброс соединения по одноранговому узлу, и я не уверен, в чем причина этой проблемы и как ее исправить. Вот все сообщение LogCat:
Итак, у кого-нибудь есть идеи, как обработать это исключение, чтобы я мог загрузить все данные без каких-либо исключений. Или как это исправить, если это невозможно.
Заранее спасибо!
Я работаю над приложением, которое загружает данные с веб-сервера. Кажется, поначалу данные загружаются без каких-либо проблем, но несколько дней назад я начал получать такие исключения: javax.net.ssl.SSLException: ошибка чтения: ssl=0x7a6588: ошибка ввода-вывода во время системного вызова, сброс соединения по одноранговому узлу, и я не уверен, в чем причина этой проблемы и как ее исправить. Вот все сообщение LogCat: [code]12-12 11:43:27.950: W/System.err(22010): javax.net.ssl.SSLException: Read error: ssl=0x7a6588: I/O error during system call, Connection reset by peer 12-12 11:43:27.960: W/System.err(22010): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method) 12-12 11:43:27.960: W/System.err(22010): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:788) 12-12 11:43:27.960: W/System.err(22010): at org.apache.harmony.luni.internal.net.www.protocol.http.ChunkedInputStream.read(ChunkedInputStream.java:50) 12-12 11:43:27.960: W/System.err(22010): at java.io.InputStream.read(InputStream.java:157) 12-12 11:43:27.960: W/System.err(22010): at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:225) 12-12 11:43:27.960: W/System.err(22010): at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:178) 12-12 11:43:27.960: W/System.err(22010): at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:174) 12-12 11:43:27.960: W/System.err(22010): at java.io.BufferedInputStream.read(BufferedInputStream.java:319) 12-12 11:43:27.970: W/System.err(22010): at java.io.FilterInputStream.read(FilterInputStream.java:133) 12-12 11:43:27.970: W/System.err(22010): at com.stampii.stampii.synchronization.Synchronization.UseHttpsConnection(Synchronization.java:1367) 12-12 11:43:27.970: W/System.err(22010): at com.stampii.stampii.synchronization.Synchronization$ActivateCollection.doInBackground(Synchronization.java:613) 12-12 11:43:27.970: W/System.err(22010): at com.stampii.stampii.synchronization.Synchronization$ActivateCollection.doInBackground(Synchronization.java:1) 12-12 11:43:27.970: W/System.err(22010): at android.os.AsyncTask$2.call(AsyncTask.java:185) 12-12 11:43:27.970: W/System.err(22010): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 12-12 11:43:27.970: W/System.err(22010): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 12-12 11:43:27.970: W/System.err(22010): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 12-12 11:43:27.970: W/System.err(22010): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 12-12 11:43:27.970: W/System.err(22010): at java.lang.Thread.run(Thread.java:1027) [/code] Вот что я получил в своем методе UseHttpsConnection: [code] public void UseHttpsConnection(String url, String charset, String query) {
try { final TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted( final X509Certificate[] chain, final String authType ) { } @Override public void checkServerTrusted( final X509Certificate[] chain, final String authType ) { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } } };
// Install the all-trusting trust manager final SSLContext sslContext = SSLContext.getInstance( "TLS" ); sslContext.init( null, trustAllCerts, new java.security.SecureRandom() ); // Create an ssl socket factory with our all-trusting manager final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
if (url.startsWith("https://")) { HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier(){ public boolean verify(String hostname, SSLSession session) { return true; }}); }
} @Override protected void onPreExecute() { Log.d("","ON PRE EXECUTE"); } @Override protected void onPostExecute(Void v) { Log.d("","ON POST EXECUTE");
} } [/code] [b]Итак, у кого-нибудь есть идеи, как обработать это исключение, чтобы я мог загрузить все данные без каких-либо исключений. Или как это исправить, если это невозможно.[/b] Заранее спасибо!