HttpsClient
package com.shanlan.openapi.infra.google;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.cert.Certificate;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLPeerUnverifiedException;
import org.apache.commons.lang3.StringUtils;
public class HttpsClient {
public static void main(String[] args) {
System.out.println(new HttpsClient().testHttps(null));
}
public String testHttps(String queryURL) {
if (StringUtils.isBlank(queryURL)) {
queryURL = GoogleAPIUtil.getQueryURL();
}
String contentString = "";
System.out.println(queryURL);
URL url;
try {
url = new URL(queryURL);
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
// dumpl all cert info
printHttpsCert(con);
// dump all the content
contentString = getContent(con);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return contentString;
}
private void printHttpsCert(HttpsURLConnection con) {
if (con != null) {
try {
System.out.println("Response Code : " + con.getResponseCode());
System.out.println("Cipher Suite : " + con.getCipherSuite());
System.out.println("\n");
Certificate[] certs = con.getServerCertificates();
for (Certificate cert : certs) {
System.out.println("Cert Type : " + cert.getType());
System.out.println("Cert Hash Code : " + cert.hashCode());
System.out.println("Cert Public Key Algorithm : "
+ cert.getPublicKey().getAlgorithm());
System.out.println("Cert Public Key Format : "
+ cert.getPublicKey().getFormat());
System.out.println("\n");
}
} catch (SSLPeerUnverifiedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private String getContent(HttpsURLConnection con) {
StringBuffer content = new StringBuffer();
if (con != null) {
try {
System.out.println("****** Content of the URL ********");
BufferedReader br = new BufferedReader(new InputStreamReader(
con.getInputStream()));
String input;
while ((input = br.readLine()) != null) {
content.append(input);
}
br.close();
return content.toString();
} catch (IOException e) {
e.printStackTrace();
}
}
return content.toString();
}
}
Output
Response Code : 200Cipher Suite : SSL_RSA_WITH_RC4_128_SHA
Cert Type : X.509
Cert Hash Code : 7810131Cert Public Key Algorithm : RSA
Cert Public Key Format : X.509
Cert Type : X.509
Cert Hash Code : 6042770Cert Public Key Algorithm : RSA
Cert Public Key Format : X.509
****** Content of the URL ********<!doctype html><html><head><meta http-equiv="content-type" ......