package com.example.patrick.myapplication.network; /** * Created by Patrizio Perna on 12/01/15. */ import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import java.io.IOException; import java.net.URI; import java.security.NoSuchAlgorithmException; import java.security.KeyManagementException; import java.net.URISyntaxException; import java.security.KeyStoreException; import java.security.UnrecoverableKeyException; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import java.security.SecureRandom; import org.apache.http.client.HttpClient; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.client.methods.HttpGet; public class DataLoader { public HttpResponse secureLoadData(String url) throws ClientProtocolException, IOException, NoSuchAlgorithmException, KeyManagementException, URISyntaxException, KeyStoreException, UnrecoverableKeyException { SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(null, new TrustManager[] { new CustomX509TrustManager() }, new SecureRandom()); HttpClient client = new DefaultHttpClient(); SSLSocketFactory ssf = new CustomSSLSocketFactory(ctx); ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ClientConnectionManager ccm = client.getConnectionManager(); SchemeRegistry sr = ccm.getSchemeRegistry(); sr.register(new Scheme("https", ssf, 443)); DefaultHttpClient sslClient = new DefaultHttpClient(ccm, client.getParams()); HttpGet get = new HttpGet(new URI(url)); HttpResponse response = sslClient.execute(get); return response; } }