Java HttpsURLConnection Example
Java HttpsURLConnection Example
Albert-Liu 发表于3年前
Java HttpsURLConnection Example
  • 发表于 3年前
  • 阅读 45
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: Here’s a simple Java HTTPS client to demonstrate the use of HttpsURLConnection class to send a HTTP GET request yo get the https URL content and certificate detail.

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" ......


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 6
博文 19
码字总数 12157
×
Albert-Liu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: