javax.net.ssl.SSLException: erro de leitura: ssl = 0x56e63588: erro de E / S durante a chamada do sistema, redefinição de conexão por ponto
Eu tenho usado usandoorg.apache.http.client.HttpClient
baixar alguns dados de um servidor HTTP nos últimos 2 anos e está funcionando bem.
Recentemente, mudamos para HTTPS por alguns motivos de segurança. Isso também funciona bem com Wi-Fi e dados móveis de alta velocidade (3G) .Mas na maioria das vezes com conexão lenta de dados (2G), meu download foi interrompido com o seguinte rastreamento de pilha.
javax.net.ssl.SSLException: Read error: ssl=0x56e63588: I/O error during system call, Connection reset by peer
at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:690)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
at org.apache.http.impl.io.AbstractSessionInputBuffer.read(AbstractSessionInputBuffer.java:120)
at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:131)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:140)
at java.io.FilterInputStream.read(FilterInputStream.java:114)
É assim que meu Código se parece:
HttpPost httpPost = new HttpPost(url);
UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(
params, HTTP.UTF_8);
httpPost.setEntity(p_entity);
response = httpClient.execute(httpPost);
DataInputStream in = new DataInputStream(response.getEntity().getContent());
String st = "";
result = new Vector<String>();
while ((st = readLine(in)) != null) {
result.addElement(st);
}