javax.net.ssl.SSLPeerUnverifiedException: нет сертификата пира, когда я работаю с Google Place API в Android [дубликат]

На этот вопрос уже есть ответ здесь:

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

Я сталкиваюсь с javax.net.ssl.SSLPeerUnverifiedException: нет исключений однорангового сертификата при работе с Google Place API в эмуляторе Android. Ниже мой URL:

https://maps.googleapis.com/maps/api/place/search/json?&location=28.632808,77.218276&radius=1000&sensor=false&key=AIzaSyC3y3fOMTqTkCjNNETQTCKustG7BRk_eVc

Когда я просто вставляю URL-адрес выше в адресной строке браузера, он просто выдает строку Json. Итак, я думаю, что никакой проверки подлинности сертификата не требуется.

После стольких гуглений и посвященных 2-3 дней, ямы использовали класс SSLSocketFacory пакета org.apache.http.conn.ssl.SSLSocketFactory, чтобы избежать ошибки сертификата однорангового узла.

ниже мой код:

public static HttpClient wrapClient(HttpClient base) {
        try {
            SSLContext ctx = SSLContext.getInstance("TLS");
            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;
                }
            };
            X509HostnameVerifier verifier = new X509HostnameVerifier() {

                public void verify(String string, SSLSocket ssls) throws IOException {
                }

                public void verify(String string, X509Certificate xc) throws SSLException {
                }

                public void verify(String string, String[] strings, String[] strings1) throws SSLException {
                }

                public boolean verify(String string, SSLSession ssls) {
                    return true;
                }
            };
            ctx.init(null, new TrustManager[]{tm}, null);
            SSLSocketFactory ssf = new SSLSocketFactory(ctx);
            ssf.setHostnameVerifier(verifier);
            ClientConnectionManager ccm = base.getConnectionManager();
            SchemeRegistry sr = ccm.getSchemeRegistry();
            sr.register(new Scheme("https", ssf, 443));
            return new DefaultHttpClient(ccm, base.getParams());
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }

Я использую Android API 16, и когда я использовал конструктор SSLSocketFactory (SSLSocketContext), eclipse выдает ошибку компиляции, поэтому яve искать много и скачать jar, имеющий SSLSocketFactory (SSLSocketContext), который "HttpClient-4.1.1.jar» файл. И я также установил порядок этого jar в пути сборки проекта, установил наивысший приоритет. Теперь я получаю следующее предупреждение:

VFY:unable to resolve direct method 4253:Lorg/apache/http/conn/ssl/SSLSocketFactory.

И после долгого следа ошибки, вызванной

java.lang.NoSuchMethodError : org.apace.http.conn.ssl.SSLSocketFactory.

Пожалуйста, помогите мне, я неНе знаю, где я не прав.

 ved21 нояб. 2012 г., 05:38
Проблема была решена. Большое спасибо stackoverflow. Приведенная ниже ссылка решила мою проблему.stackoverflow.com/questions/7622004/...
 Bishnu13 мар. 2013 г., 00:12
НЕ ДЕЛАЙТЕ ЭТОГО. ОТКЛЮЧЕНИЕ SSL - ОГРОМНОЕ ОТЛОЖЕНИЕ БЕЗОПАСНОСТИ. Извините за все заглавные буквы.
 Nikolay Elenkov21 нояб. 2012 г., 04:24
Это происходит на реальном устройстве? Какая версия Android эмулирует ваш эмулятор? Используя 'нет проверки доверительный управляющийочень плохой идея, так что нет.

Ответы на вопрос(1)

решается простым шагом

Я неТочную причину не знаю, но я решил ееПерезапустите Эмулятор или создайте НОВЫЙ Эмулятори запустите проект в этом новом эмуляторе

Я выиграл'не могу сказать, что это точный ответ, ноПопробуйте, прежде чем изменять кодировку с комплексными кодами

 Ghashange25 сент. 2014 г., 21:51
Это была именно моя проблема, стоит попробовать это раньше вместо сложного кодирования

Ваш ответ на вопрос