For Example :
==> First call following method.
public static void trustAllHosts() {
X509TrustManager easyTrustManager = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
// Oh, I am easy!
}
public void checkServerTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
// Oh, I am easy!
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] { easyTrustManager };
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection
.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
}
====> After this
For calling HTTPS webservices you need to create Custom HttpClient instead of using DefaultHttpClient.
HttpClient _httpclient = Utils.getNewHttpClient();
Following is getNewHttpClient() method :
public
static HttpClient getNewHttpClient() {
try
{
KeyStore
trustStore = KeyStore.getInstance(KeyStore
.getDefaultType());
trustStore.load(null,
null);
SSLSocketFactory
sf = new MySSLSocketFactory(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
HttpParams
params = new BasicHttpParams();
HttpProtocolParams.setVersion(params,
HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params,
HTTP.UTF_8);
SchemeRegistry
registry = new SchemeRegistry();
registry.register(new
Scheme("http", PlainSocketFactory
.getSocketFactory(),
80));
registry.register(new
Scheme("https", sf, 443));
ClientConnectionManager
ccm = new ThreadSafeClientConnManager(
params,
registry);
return
new DefaultHttpClient(ccm, params);
}
catch (Exception e) {
return
new DefaultHttpClient();
}
}
Here
we have use custom MySSLSocketFactory class, which is following.
Create
new class MySSLSocketFactory.java copy following code and paste.
public
class MySSLSocketFactory extends
SSLSocketFactory {
SSLContext
sslContext
= SSLContext.getInstance("TLS");
public
MySSLSocketFactory(KeyStore truststore)
throws
NoSuchAlgorithmException, KeyManagementException,
KeyStoreException,
UnrecoverableKeyException {
super(truststore);
TrustManager
tm = new
X509TrustManager() {
public
void
checkClientTrusted(X509Certificate[] chain,
String
authType) throws
CertificateException {
}
public
void
checkServerTrusted(X509Certificate[] chain,
String
authType) throws
CertificateException {
}
public
X509Certificate[] getAcceptedIssuers() {
return
null;
}
};
sslContext.init(null,
new
TrustManager[] { tm }, null);
}
@Override
public
Socket createSocket(Socket socket, String host, int
port,
boolean
autoClose) throws
IOException, UnknownHostException {
return
sslContext.getSocketFactory().createSocket(socket,
host, port,
autoClose);
}
@Override
public
Socket createSocket() throws
IOException {
return
sslContext.getSocketFactory().createSocket();
}
}
Now done :) You can parse your xml now.
Now done :) You can parse your xml now.