文档章节

Java HttpsURLConnection Example

Albert-Liu
 Albert-Liu
发布于 2015/02/04 21:51
字数 272
阅读 60
收藏 0

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


本文转载自:http://www.mkyong.com/java/java-https-client-httpsurlconnection-example/

共有 人打赏支持
Albert-Liu
粉丝 6
博文 19
码字总数 12157
作品 0
深圳
架构师
关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题

在部署微信公众号项目时,在本地TOMCAT测试通过后部署到WEBLOGIC上。抛出了weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection这样的错误。这段...

哥本哈根的小哥
05/10
0
0
HTTPS的证书未经权威机构认证的情况下,访问HTTPS站点的两种方法

注意一下文章中提到的jsse在jdk1.4以后已经集成了,不必纠结. 摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问。但是,如果该站点的证书未经权威机构的...

swearyd457
2015/08/18
0
0
通过JSSE来发起Https请求

工作中会遇到https请求和接受相关的问题,这篇文章介绍的挺不错,转来记录一下,抽时间还会在这篇文章的基础上增加一些自己理解的东东。 摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以...

阿山du
2013/12/03
0
0
Java 8 - 20 Examples of Date and Time API Read mo

Along with lambda expressions, streams and several minor goodies, Java 8 has also introduced brand new Date and Time API, and in this tutorial we will learn how to use Java 8 Da......

一号男嘉宾
2015/11/02
0
0
bytebuffer vs c++ malloc

Java equivalents of malloc(), new, free() and delete (ctd) Continued from our introduction to memory management operators in C/C++ and Java. A Java equivalent of the malloc() fu......

不道归来
2017/10/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis中jdbcType和javaType的对应关系 

Mybatis中jdbcType和javaType的对应关系 1 JDBC Type Java Type 2 CHAR String 3 VARCHAR String 4 LONGVARCHAR String 5 NUMERIC java.math.BigDecimal 6 DECIMAL java.math.BigDecimal 7 ......

DemonsI
33分钟前
3
0
Python中字符串和datetime

遇到的问题: 今天在写一个爬虫时,需要将今天的数据和昨天、一周前的数据做比较。所以就需要一个方法可以方便的计算出指定日期的前几天的日期。比如10月3号,则一周前的日期是9月26号。 问题...

akane_oimo
35分钟前
1
0
企业级 SpringBoot 教程 (四)SpringBoot 整合JPA

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA 的目标之一是制定一个可以由很多供应商实现的API,并且开发...

itcloud
36分钟前
2
0
白话SpringCloud | 第六章:Hystrix监控面板及数据聚合(Turbine)

前言 前面一章,我们讲解了如何整合Hystrix。而在实际情况下,使用了Hystrix的同时,还会对其进行实时的数据监控,反馈各类指标数据。今天我们就将讲解下Hystrix Dashboard和Turbine.其中Hys...

oKong
46分钟前
2
0
Java JDK 11:现在可以使用所有新功能

删除了CORBA,Java EE和JavaFX支持,但添加了十几个主要新功能 目录 哪里可以下载JDK 11 Java 11 JDK中的新功能 从Java JDK 11中删除了什么 Java Development Kit(JDK)11现已普遍可用,可供...

GuoMengyue
48分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部