Вопрос по google-places-api, apache-httpclient-4.x, android, ssl – javax.net.ssl.SSLPeerUnverifiedException: нет сертификата пира, когда я работаю с Google Place API в Android [дубликат]

8

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

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.

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

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

Ваш Ответ

1   ответ
2

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

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

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

Это была именно моя проблема, стоит попробовать это раньше вместо сложного кодирования Ghashange

Похожие вопросы