SSL handshake Excepción en la aplicación navegar desde otros países

Mi aplicación está disponible para muchos países. Pero hay pocos países en los que la aplicación no funciona. da una excepción de apretón de manos SSL y una excepción de tiempo de espera. Esto ocurre sólo para pocos países como Arabia Saudí, Bahrein, Ciudad del Vaticano, etc.

W/System.err: javax.net.ssl.SSLException: Connection closed by peer W/System.err: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) W/System.err: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:406) W/System.err: at com.android.okhttp.Connection.upgradeToTls(Connection.java:146) W/System.err: at com.android.okhttp.Connection.connect(Connection.java:107) W/System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294) W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255) W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206) W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345) W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89) W/System.err: at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:161) 

Mi código de cliente Java Api

  connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(request.getRequestType()); if (request.getHeaders() != null) { Boolean usApkTest = mSharedPreferencesManager.getUsApkTest(); if (usApkTest) { request.getHeaders().put("COUNTRY", "US"); } setConnectionHeaders(connection, request.getHeaders()); } if (request.getBody() != null) { connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); JSONObject body; body = new JSONObject(request.getBody()); OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream()); wr.write(body.toString()); wr.close(); } else if (request.getBodyJson() != null) { connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream()); wr.write(request.getBodyJson().toString()); wr.close(); } connection.setReadTimeout(request.getRequestTimeout()); connection.connect(); responseCode = connection.getResponseCode(); Logger.v("RESPONSE CODE", "RESPONSE CODE: " + responseCode); stringBuilder = new StringBuilder(); String line = null; if (responseCode == 401 || responseCode == 422 || responseCode == 404 || responseCode == 403) { if (connection.getErrorStream() != null) reader = new BufferedReader(new InputStreamReader(connection.getErrorStream())); } else reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); while ((line = reader.readLine()) != null) { stringBuilder.append(line + "\n"); } 

¿Alguien tiene alguna idea de por qué esto está sucediendo.

También me encontré con un enlace https://www.reddit.com/r/Android/comments/p0y97/it_sucks_to_be_an_android_user_in_saudi_arabia/ ¿Esto se relaciona de todos modos con mi problema?

  • Error de protocolo desconocido con conexión HTTPS en android
  • ¿Es OAuth en un teléfono móvil usando un servidor proxy demasiado problema?
  • Android: evitar el olfateo (por ejemplo, con CharlesProxy) de tráfico SSL
  • Cómo resolver 'no puede encontrar una ruta de certificación válida a la meta solicitada' en Android Studio 2.3.2
  • La sesión SSL no se reutiliza en Android WebView
  • Consumir servicio WCF en SSL en Android
  • Javax.net.ssl.SSLPeerUnverifiedException: Ningún certificado igual mientras intentaba conectarse usando https con .bks keystore
  • NoSuchAlgorithmException de Android: "no se ha encontrado la implementación SSL de SSLContext"
  • SSLHandshakeException: Handshake falló en Android N / 7.0
  • Javax.net.ssl.SSLHandshakeException: Handshake falló en Android 5.0.0 cuando SSLv2 y SSlv3 están deshabilitados (sólo TLS) (y mayores)
  • Administrador SDK Host desconocido dl-ssl.google.com
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.