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);
         }

questionAnswers(1)

yourAnswerToTheQuestion