java获取https网页代码_java抓取Https协议url地址的源码的方法
阅读本文之前,请先阅读下文,通过下文将获取到keystore文件:
在此,感谢一下stevenliu,不过经过我的测试,发现stevenliu文章中的源码并没有抓取到页面源码。可能是我项目里面的HttpClient版本较高的原因。下面这个方法没有问题:
package org.phoenix.cases.webservice;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.KeyStore;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.List;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
import org.apache.commons.io.IOUtils;
/**
* java通过加载认证证书,抓取https的url源码方法
* @author mengfeiyang
*
*/
public class MyX509TrustManager implements X509TrustManager {
private X509TrustManager sunJSSEX509TrustManager;
public MyX509TrustManager(String keystoreFile,String pass) throws Exception {
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream(keystoreFile),pass.toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509", "SunJSSE");
tmf.init(ks);
TrustManager tms [] = tmf.getTrustManagers();
for (int i = 0; i
if (tms[i] instanceof X509TrustManager) {
sunJSSEX509TrustManager = (X509TrustManager) tms[i];
return;
}
}
throw new Exception("Couldn't initialize");
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
try {
sunJSSEX509TrustManager.checkClientTrusted(chain, authType);
} catch (CertificateException excep) {
excep.printStackTrace();
}
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
try {
sunJSSEX509TrustManager.checkServerTrusted(chain, authType);
} catch (CertificateException excep) {
excep.printStackTrace();
}
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return sunJSSEX509TrustManager.getAcceptedIssuers();
}
public static void main(String[] args) throws Exception {
TrustManager[] tm = { new MyX509TrustManager("E:\\mycert.keystore","123456") };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new SecureRandom());
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL myURL = new URL("https://beta.tf.360.cn/search/mapi?keyword=途牛");
HttpsURLConnection httpsConn = (HttpsURLConnection) myURL.openConnection();
httpsConn.setSSLSocketFactory(ssf);
InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream());
List ls = IOUtils.readLines(insr);
for(String l : ls){
System.out.println(l);//打印源码
}
httpsConn.getResponseCode();//获取的状态码
}
}
在我的phoenixframework自动化平台的接口测试模块中,下个版本将会增加https的操作。因为发现现在越来越多的网站是https了。phoenixframework平台网站:http://www.cewan.la
java获取https网页代码_java抓取Https协议url地址的源码的方法相关推荐
- java股票数据_java抓取东方财富股票数据(附源码)
背景 前段时间给朋友写了一个自动抓取同花顺股票数据的程序,不少人觉得不错. 这几天后台有粉丝给我留言让我也抓一下东方财富的数据,说东方财富的数据特别难抓,我还真不一定能搞得定. 本来我是一个德艺双磬且 ...
- java抓取网页代码_java 抓取网页内容实现代码
复制代码 代码如下: package test; import java.io.BufferedReader; import java.io.IOException; import java.io.I ...
- 网页java代码_java抓取网页代码
导读热词 代码以下 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLCo ...
- java取网页数据_Java抓取网页数据(原来的页面+Javascript返回数据)
转载请注明出处. 有时候因为种种原因.我们须要採集某个站点的数据.但因为不同站点对数据的显示方式略有不同! 本文就用Java给大家演示怎样抓取站点的数据:(1)抓取原网页数据.(2)抓取网页Javas ...
- java 抓取网页乱码_java抓取网页乱码问题的处理
今天同事做了一个我们感觉很牛B的彩票预测程序,采用的是遗传算法实现,于是我"剽"来学习先,但是部署到我电脑上以后,就有问题了: 1.用她的抓取程序得到的网页内容出现乱码,导致数据无 ...
- requests和正则re的使用抓取某小说文本(附带源码)
平时有没有和我一样喜欢看小说的小伙伴,在用网页看小说的时候经常会忘了小说的地址,或者是被网页上的垃圾广告所干扰误触点了进去.今天我们来抓取一整部小说文本 1.对页面进行分析,构思思路 1.首先找到我们 ...
- python爬取同花顺_Java爬取同花顺股票数据(附源码)
最近有小伙伴问我能不能抓取同花顺的数据,最近股票行情还不错,想把数据抓下来自己分析分析.我大A股,大家都知道的,一个概念火了,相应的股票就都大涨. 如果能及时获取股票涨跌信息,那就能在刚开始火起来的时 ...
- Python爬虫实现抓取腾讯视频所有电影-源码【实战必学】
用python实现的抓取腾讯视频所有电影的爬虫 1. # -*- coding: utf-8 -*-2. import re3. import urllib24. from bs4 import Be ...
- 编译与代码安全之认识(二):Source2Source源码混淆方法
一.说明: 针对源码混淆其实在代码保护中应用很多,大部分是应用在像JS这种脚本语言中,因为很多时候JS是以源码的形式出现,网上有很多关于JS保护的工具,比较出名的是JSugly和 ...
- java http 下载网页代码_Java下http下载文件客户端和上传文件客户端实例代码
Java下http下载文件客户端和上传文件客户端实例代码 发布于 2021-1-14| 复制链接 摘记: 一.下载客户端代码 ```java package javadownload; import ...
最新文章
- MyISAM与InnoDB的索引实现
- 工作场合少聊事事非非
- labelme数据增强_NO. 21 标注工具 amp; 合成数据生成工具
- AtomicStampedReference实现
- mysql中的double类型_MySQL中float、double、decimal三个浮点类型的区别与总结!
- startssl申请免费ssl证书
- PageRank算法原理与实现
- Matplotlib使用指南
- SpringSecurity-1-UserDetails接口
- 每日codewars题之判断一个数是否是水仙花数
- oracle查询当天数据三种方式性能对比
- 一次成功的mybatis-plus级联查询
- jdk6版本下载地址
- Linux实操篇-用户管理
- [论文阅读] Meta-Weight-Net: Learning an Explicit Mapping For Sample Weighting
- 【转载】怎么设置博客背景
- 热辊的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 2023年软件设计师中级(考点分析+复习笔记+历年真题+电子版课本)
- 欢迎访问我的个人博客:www.zou8944.com
- “屌丝”真实逆袭经历,大专毕业到成为公司的Java方向核心技术骨干,我的学习经历值得你借鉴!