package cyrille.net.http; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.security.cert.Certificate; import java.security.cert.X509Certificate; import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.net.ssl.HttpsURLConnection; import org.apache.commons.io.IOUtils; import org.junit.Test; public class HttpUrlConnectionTest { @Test public void test() throws Exception { URL url = new URL("http://www.sfr.fr/cas/parameters.jsp"); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.connect(); dumpConnection(connection); } private void dumpConnection(URLConnection connection) throws Exception { if (connection instanceof HttpURLConnection) { HttpURLConnection httpConnection = (HttpURLConnection)connection; System.out.println("Connection Response Message " + httpConnection.getResponseMessage()); } Map<String, List<String>> headers = connection.getHeaderFields(); for (Entry<String, List<String>> entry : headers.entrySet()) { System.out.print(entry.getKey() + "\t: "); for (String value : entry.getValue()) { System.out.print(value + ", "); } System.out.println(); } if (connection instanceof HttpsURLConnection) { HttpsURLConnection httpsConnection = (HttpsURLConnection)connection; System.out.println("CipherSuite\t: " + httpsConnection.getCipherSuite()); Certificate[] serverCertificates = httpsConnection.getServerCertificates(); for (Certificate certificate : serverCertificates) { if (certificate instanceof X509Certificate) { X509Certificate x509Certificate = (X509Certificate)certificate; System.out.println(x509Certificate.getSubjectX500Principal()); } else { System.out.println(certificate); } } } System.out.println(); System.out.println("##################################################"); System.out.println(); InputStream in = connection.getInputStream(); IOUtils.copy(in, System.out); } }