package com.chariotsolutions.example.http;
import com.chariotsolutions.example.util.IOUtil;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import java.io.File;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* client-side interface to the back-end application.
*/
public class Api {
private SSLContext sslContext;
private int lastResponseCode;
public int getLastResponseCode() {
return lastResponseCode;
}
public Api(AuthenticationParameters authParams) throws Exception {
File clientCertFile = authParams.getClientCertificate();
sslContext = SSLContextFactory.getInstance().makeContext(clientCertFile, authParams.getClientCertificatePassword(), authParams.getCaCertificate());
CookieHandler.setDefault(new CookieManager());
}
public String doGet(String url) throws Exception {
String result = null;
HttpURLConnection urlConnection = null;
try {
URL requestedUrl = new URL(url);
urlConnection = (HttpURLConnection) requestedUrl.openConnection();
if(urlConnection instanceof HttpsURLConnection) {
((HttpsURLConnection)urlConnection).setSSLSocketFactory(sslContext.getSocketFactory());
}
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(1500);
urlConnection.setReadTimeout(1500);
lastResponseCode = urlConnection.getResponseCode();
result = IOUtil.readFully(urlConnection.getInputStream());
} catch(Exception ex) {
result = ex.toString();
} finally {
if(urlConnection != null) {
urlConnection.disconnect();
}
}
return result;
}
}