Edycja odpowiedzi całkowicie po kilku dalszych testach, zarówno HttpUrlConnection, jak i NSURLConnection wydają się ponawiać nieudane połączenia TLS ze starszymi połączeniami SSLv3. Dla lepszej lub w większości gorszej jest to celowa funkcjonalność dla wstecznej kompatybilności z nieprawidłowo skonfigurowanymi serwerami i jest udokumentowana w większości dokumentów referencyjnych w większości miejsc lub musisz przekopać się przez natywne źródło kodu. Mój pierwotny wpis był nieprawidłowy, ponieważ nigdy nie śledziłem zmiany Oracle, aby rozwiązać ten problem w natywnym kodzie Androida. http://www.oracle.com/technetwork/java/javase/overview/tlsreadme2-176330.html
Niektóre dokumentacja:
HttpURLConnection
TLS Intolerance Support
This class attempts to create secure connections using common TLS extensions and SSL deflate compression. Should that fail, the connection will be retried with SSLv3 only.
OkHttp
OkHttp initiates new connections with modern TLS features (SNI, ALPN), and falls back to SSLv3 if the handshake fails.
Wszystko, co powiedział, myślę, że zdolność do ustawić minimalny dozwolony wersja TLS w iOS oraz możliwość określenia obsługiwane wersje protokołów w systemie Android naprawdę sprawiają, że jest to trochę problematyczne w aplikacjach.
iOS Przykład: https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSURLSessionConfiguration_class/index.html#//apple_ref/occ/instp/NSURLSessionConfiguration/TLSMinimumSupportedProtocol
Dziękuję za odpowiedź i za tych badań! – esilver