HTTP/GET
SSL接続を介した簡単なリクエストで、一連のCSV行をAndroidデバイスにダウンロードしています。これは、新しいサーバー (Debian 6 -> Debian 7) に切り替えるまで魅力的に機能しました。これはサーバー証明書の問題である可能性がありますが、ダウンロードが開始され、この例外の前に約 700 の記事を解析しているため、そうは思いません。にスローされ.readLine()
ます:
(ダウンロードは Android ICS (4.*) でテストされ、問題なく動作することに注意してください。Android <= 2.3 にのみ影響するようです。)
Read error: ssl=0x35e700: Failure in SSL library, usually a protocol error
javax.net.ssl.SSLProtocolException: Read error: ssl=0x35e700: Failure in SSL library, usually a protocol error
at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:788)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
at org.apache.http.impl.io.AbstractSessionInputBuffer.read(AbstractSessionInputBuffer.java:134)
at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:161)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:159)
at java.io.InputStreamReader.read(InputStreamReader.java:255)
at java.io.BufferedReader.fillBuf(BufferedReader.java:128)
at java.io.BufferedReader.readLine(BufferedReader.java:357)
at xx.xxxxx.services.ArticlesSync.doInBackground(ArticlesSync.java:155)
at xx.xxxxx.services.ArticlesSync.doInBackground(ArticlesSync.java:26)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)
| |
InputStream inputStream = response.getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String currentLine = null;
SQLArticleManager articles = SQLArticleManager.createArticles();
while ((currentLine = bufferedReader.readLine()) != null)
{
if (!progressDialog.isShowing())
{
return ERROR_ABORTED;
}
String[] data = currentLine.split("`");
if (data.length == 4)
{
articles.addArticle(data[0], data[1], data[2], Float.parseFloat(data[3]));
}
rowsRead++;
publishProgress(createProgress((int) (rowsRead * 100 / rows), ""));
}
ここで何か間違ったことをしていますか?どこかのタイムアウトが原因でしょうか?