Android Verify SSL сертификат - PullRequest
       0

Android Verify SSL сертификат

1 голос
/ 13 декабря 2011

У меня небольшая проблема с проверкой SSL в моем приложении. Как я обнаружил в интернете в документации FourSquare, они предлагают следующую проверку: SSL Calidation , но проблема в том, что я использую HttpsURLConnection и хочу использовать этот класс вместо DefaultHttpClient. Поэтому, когда я заменяю клиента в getTolerantClient на HttpsURLConnection и пытаюсь сделать это, он показывает мне некоторые ошибки:

    public HttpsURLConnection getTolerantClient() {
    HttpsURLConnection client = new HttpsURLConnection();
    SSLSocketFactory sslSocketFactory = (SSLSocketFactory) client.getConnectionManager().getSchemeRegistry().getScheme("https").getSocketFactory();
    final X509HostnameVerifier delegate = sslSocketFactory.getHostnameVerifier();
    if(!(delegate instanceof MyVerifier)) {
        sslSocketFactory.setHostnameVerifier(new MyVerifier(delegate));
    }
    return client;
}

нравится:

The method getConnectionManager() is undefined for the type HttpsURLConnection

&

The method getHostnameVerifier() is undefined for the type SSLSocketFactory

Так есть идеи, как я могу использовать это в моей ситуации? Заранее спасибо!

1 Ответ

1 голос
/ 21 декабря 2011

Этот пример кода должен помочь вам адаптировать метод getTolerantClient:

public URLConnection getTolerantClient(URL url) throws IOException {
    URLConnection conn = url.openConnection();
    if (!(conn instanceof HttpsURLConnection)) {
        /* not an https:// URL, nothing to do */
        return conn;
    }
    HttpsURLConnection httpsconn = (HttpsURLConnection)conn;
    final HostnameVerifier delegate = httpsconn.getHostnameVerifier();
    if(!(delegate instanceof MyVerifier)) {
        httpsconn.setHostnameVerifier(new MyVerifier(delegate));
    }
    return conn;
}

Конечно, MyVerifier должен реализовывать интерфейс javax.net.ssl.HostnameVerifier.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...