Intereting Posts
Android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" Не работает андроид Вызов широковещательного приемника в случайное время при изменении состояния wi-fi в android 4.2.2 Не удалось загрузить Android APK в ARC Welder Обрезать изображение по области полигона Отключение клавиатуры Android Запись данных в тег NFC в учебнике по андроиде Для вызова требуется уровень API 23 (текущий минимум равен 14): android.app.Activity # requestPermissions, checkSelfPermission Изображение андроида установлено как значок контакта / обои Диаграмма над линиями сетки в диаграмме AChartEngine Android.permission.CALL_PHONE для планшетов Как получить ответ как String с использованием модификации без использования GSON или любой другой библиотеки в android Существуют ли библиотеки, похожие на проект Three20 для Android? Подписание Google в приложении Android для использования бэкэнд Cloud Endpoints Можно ли запускать различные действия при запуске в зависимости от пользовательских настроек? Как получить базовый взгляд от MotionEvent?

Android: создание запроса Https

Как избежать исключения «javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated» и разрыва в Apache Linux? «Конструктор SSLSocketFactory (SSLContext) не определен» при выполнении запроса Https?

Этот метод принимает экземпляр HttpClient и возвращает экземпляр HttpClient готового к https.

private HttpClient sslClient(HttpClient client) { try { X509TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException { } public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(null, new TrustManager[]{tm}, null); SSLSocketFactory ssf = new MySSLSocketFactory(ctx); ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ClientConnectionManager ccm = client.getConnectionManager(); SchemeRegistry sr = ccm.getSchemeRegistry(); sr.register(new Scheme("https", ssf, 443)); return new DefaultHttpClient(ccm, client.getParams()); } catch (Exception ex) { return null; } } 

Поскольку у Android org.apache.http.conn.ssl.SSLSocketFactory нет конструктора SSLSocketFactory (SSLContext), я расширил класс следующим образом.

  public class MySSLSocketFactory extends SSLSocketFactory { SSLContext sslContext = SSLContext.getInstance("TLS"); public MySSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException { super(truststore); TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; sslContext.init(null, new TrustManager[] { tm }, null); } public MySSLSocketFactory(SSLContext context) throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException, UnrecoverableKeyException { super(null); sslContext = context; } @Override public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException { return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose); } @Override public Socket createSocket() throws IOException { return sslContext.getSocketFactory().createSocket(); } } 

Отличная статья здесь: http://javaskeleton.blogspot.com/2010/07/avoiding-peer-not-authenticated-with.html

И некоторая помощь здесь: доверять всем сертификатам с использованием HttpClient через HTTPS

У меня была аналогичная проблема, которая больше похожа на этот вопрос, но первопричина полностью отличалась от той, которая упоминалась в обоих вопросах.

Я использовал DefaultHttpClient как httpclient для запроса https://maps.googleapis.com как ссылки. Я старался предлагать все предлагаемые решения, но никто не работал для меня. Спустя несколько часов, пытаясь решить проблему, она обнаружила первопричину: мое устройство было подключено к гостевому WIFI, который, вероятно, имеет некоторые специальные правила фильтрации, которые блокировали соответствующие сетевые части. Переключение на другую сеть решило мою проблему.