Search in sources :

Example 1 with SchemeRegistry

use of cz.msebera.android.httpclient.conn.scheme.SchemeRegistry in project android-async-http by loopj.

the class MySSLSocketFactory method getNewHttpClient.

/**
     * Gets a DefaultHttpClient which trusts a set of certificates specified by the KeyStore
     *
     * @param keyStore custom provided KeyStore instance
     * @return DefaultHttpClient
     */
public static DefaultHttpClient getNewHttpClient(KeyStore keyStore) {
    try {
        SSLSocketFactory sf = new MySSLSocketFactory(keyStore);
        SchemeRegistry registry = new SchemeRegistry();
        registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
        registry.register(new Scheme("https", sf, 443));
        HttpParams params = new BasicHttpParams();
        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
        HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
        ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
        return new DefaultHttpClient(ccm, params);
    } catch (Exception e) {
        return new DefaultHttpClient();
    }
}
Also used : HttpParams(cz.msebera.android.httpclient.params.HttpParams) BasicHttpParams(cz.msebera.android.httpclient.params.BasicHttpParams) Scheme(cz.msebera.android.httpclient.conn.scheme.Scheme) ThreadSafeClientConnManager(cz.msebera.android.httpclient.impl.conn.tsccm.ThreadSafeClientConnManager) SchemeRegistry(cz.msebera.android.httpclient.conn.scheme.SchemeRegistry) SSLSocketFactory(cz.msebera.android.httpclient.conn.ssl.SSLSocketFactory) BasicHttpParams(cz.msebera.android.httpclient.params.BasicHttpParams) ClientConnectionManager(cz.msebera.android.httpclient.conn.ClientConnectionManager) DefaultHttpClient(cz.msebera.android.httpclient.impl.client.DefaultHttpClient) KeyStoreException(java.security.KeyStoreException) UnrecoverableKeyException(java.security.UnrecoverableKeyException) IOException(java.io.IOException) KeyManagementException(java.security.KeyManagementException) CertificateException(java.security.cert.CertificateException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException)

Example 2 with SchemeRegistry

use of cz.msebera.android.httpclient.conn.scheme.SchemeRegistry in project android-async-http by loopj.

the class AsyncHttpClient method getDefaultSchemeRegistry.

/**
     * Returns default instance of SchemeRegistry
     *
     * @param fixNoHttpResponseException Whether to fix issue or not, by omitting SSL verification
     * @param httpPort                   HTTP port to be used, must be greater than 0
     * @param httpsPort                  HTTPS port to be used, must be greater than 0
     */
private static SchemeRegistry getDefaultSchemeRegistry(boolean fixNoHttpResponseException, int httpPort, int httpsPort) {
    if (fixNoHttpResponseException) {
        log.d(LOG_TAG, "Beware! Using the fix is insecure, as it doesn't verify SSL certificates.");
    }
    if (httpPort < 1) {
        httpPort = 80;
        log.d(LOG_TAG, "Invalid HTTP port number specified, defaulting to 80");
    }
    if (httpsPort < 1) {
        httpsPort = 443;
        log.d(LOG_TAG, "Invalid HTTPS port number specified, defaulting to 443");
    }
    // Fix to SSL flaw in API < ICS
    // See https://code.google.com/p/android/issues/detail?id=13117
    SSLSocketFactory sslSocketFactory;
    if (fixNoHttpResponseException) {
        sslSocketFactory = MySSLSocketFactory.getFixedSocketFactory();
    } else {
        sslSocketFactory = SSLSocketFactory.getSocketFactory();
    }
    SchemeRegistry schemeRegistry = new SchemeRegistry();
    schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), httpPort));
    schemeRegistry.register(new Scheme("https", sslSocketFactory, httpsPort));
    return schemeRegistry;
}
Also used : Scheme(cz.msebera.android.httpclient.conn.scheme.Scheme) BasicScheme(cz.msebera.android.httpclient.impl.auth.BasicScheme) AuthSchemeRegistry(cz.msebera.android.httpclient.auth.AuthSchemeRegistry) SchemeRegistry(cz.msebera.android.httpclient.conn.scheme.SchemeRegistry) SSLSocketFactory(cz.msebera.android.httpclient.conn.ssl.SSLSocketFactory)

Aggregations

Scheme (cz.msebera.android.httpclient.conn.scheme.Scheme)2 SchemeRegistry (cz.msebera.android.httpclient.conn.scheme.SchemeRegistry)2 SSLSocketFactory (cz.msebera.android.httpclient.conn.ssl.SSLSocketFactory)2 AuthSchemeRegistry (cz.msebera.android.httpclient.auth.AuthSchemeRegistry)1 ClientConnectionManager (cz.msebera.android.httpclient.conn.ClientConnectionManager)1 BasicScheme (cz.msebera.android.httpclient.impl.auth.BasicScheme)1 DefaultHttpClient (cz.msebera.android.httpclient.impl.client.DefaultHttpClient)1 ThreadSafeClientConnManager (cz.msebera.android.httpclient.impl.conn.tsccm.ThreadSafeClientConnManager)1 BasicHttpParams (cz.msebera.android.httpclient.params.BasicHttpParams)1 HttpParams (cz.msebera.android.httpclient.params.HttpParams)1 IOException (java.io.IOException)1 KeyManagementException (java.security.KeyManagementException)1 KeyStoreException (java.security.KeyStoreException)1 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)1 UnrecoverableKeyException (java.security.UnrecoverableKeyException)1 CertificateException (java.security.cert.CertificateException)1