Intereting Posts
Не удается заставить класс NotificationListenerService работать Почему getView, getY, setX и setY ImageView не представляют фактическое значение в Relative Layout? Divider исчезает из последнего элемента в списке, если добавлен footerview Кнопка с цветом фона и прозрачным текстом Android UiAutomatorViewer не может обнаружить некоторые виды Android Autoscroll imageview Ошибка сборки Travis Ci, вызванная лицензионными соглашениями Android SDK Как добиться модульности структуры подкомпонентов приложения на Android? Хотите загрузить картинку на сервер с помощью phonegap в android Настройка значка пользовательского общего ресурса на панели действий ShareActionProvider без ActionBarSherlock Android: как получить пользовательский атрибут XML в классе Activity Анимация фрагмента диалога при увольнении Как я могу разблокировать экран во время отладки USB? Как можно получить доступ к методу NotificationListenerService? Сбой библиотеки Android BarcodeScanner в 64-битных устройствах

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, который, вероятно, имеет некоторые специальные правила фильтрации, которые блокировали соответствующие сетевые части. Переключение на другую сеть решило мою проблему.