Ssl en android tema extraño

Estoy intentando cargar un archivo a algún url usando ssl. Yo uso este código para establecer administrador de confianza –

public static void trustAll () { TrustManage[] trustEverythingTrustManager = new TrustManager[] { new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { // TODO Auto-generated method stub } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { // TODO Auto-generated method stub } public X509Certificate[] getAcceptedIssuers() { // TODO Auto-generated method stub return null; } } }; SSLContext sc; try { sc = SSLContext.getInstance("TLS"); sc.init(null, trustEverythingTrustManager, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } catch (Exception e) { } } 

Y éste para establecer el verificador de nombre de host –

 public static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; 

Entonces estoy abriendo la conexión como esto –

 URL url = new URL("some_url"); HttpURLConnection connection = null; // check if this is https or just http if (url.getProtocol().toLowerCase().equals("https")) { trustAll(); HttpsURLConnection https = (HttpsURLConnection) url.openConnection(); https.setHostnameVerifier(DO_NOT_VERIFY); connection = https; } else { connection = (HttpURLConnection) url.openConnection(); } 

Después de obtener la conexión lo uso para cargar los datos. ¿Utilizo http todo está bien pero cuando intento https consigo la excepción siguiente –

Error de escritura: Error de E / S durante la llamada al sistema, Roto pipe java.io.IOException: Error de escritura: Error de E / S durante la llamada del sistema, Rechazo de pipe en org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.nativewrite (Nativo Método) en org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.access $ 600 (OpenSSLSocketImpl.java:55) en org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl $ SSLOutputStream.write (OpenSSLSocketImpl.java:565 ) En java.io.OutputStream.write (OutputStream.java:82) en org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection $ HttpOutputStream.write (HttpURLConnection.java:652) en java. Io.DataOutputStream.write (DataOutputStream.java:101)

Lo extraño es que no recibo excepción todo el tiempo. Cuando intento cargar archivos pequeños (200K) funciona bien o se está estrellando muy raro, pero cuando intento subir los más grandes (más de 1 MB) recibo la excepción casi cada vez.

Algunas ideas ?

Los chicos de android informó que es un error en android sdk http://code.google.com/p/android/issues/detail?id=8625 .

  • javax.net.ssl.SSLPeerUnverifiedException: Nombre de host no verificado:
  • ¿Cómo habilitar la depuración de SSL en la plataforma Android?
  • Android envía la solicitud de correos https al servidor sin métodos desaconsejados
  • Intermitente PeerUnverifiedException: No hay certificado de compañero con el cliente de Android
  • Cómo utilizar un certificado SSL auto-firmado en Android
  • SSLProtocolException haciendo una conexión https
  • los medios de comunicación subiendo a la nube utilizando url interup firmado debido a algunos problemas de certificado ssl?
  • Solicitud HTTP de SSL de Android mediante cert auto-firmado y CA
  • SSL Pinning con la biblioteca Volley en Android
  • Reutilizando sesiones SSL en Android con HttpClient
  • Comportamiento de tipo navegador en certificados no válidos / autofirmados
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.