package cn.com.admaster.migsender.utils;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
/**
* Created by qeekey on 17/7/3.
*/
public class Test {
public static HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. "
+ session.getPeerHost());
return true;
}
};
private static void trustAllHttpsCertificates() throws Exception {
javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
javax.net.ssl.TrustManager tm = new miTM();
trustAllCerts[0] = tm;
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext
.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc
.getSocketFactory());
}
static class miTM implements javax.net.ssl.TrustManager,
javax.net.ssl.X509TrustManager {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public boolean isServerTrusted(
java.security.cert.X509Certificate[] certs) {
return true;
}
public boolean isClientTrusted(
java.security.cert.X509Certificate[] certs) {
return true;
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType)
throws java.security.cert.CertificateException {
return;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType)
throws java.security.cert.CertificateException {
return;
}
}
public static void main(String[] args) throws Exception {
URL reqURL = new URL(
"https://www.mydata.com/api_v1/medias.json"); // 创建URL对象
Test t = new Test();
t.trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);
HttpsURLConnection httpsConn = (HttpsURLConnection) reqURL
.openConnection();
/*
* 下面这段代码实现向Web页面发送数据,实现与网页的交互访问 httpsConn.setDoOutput(true);
* OutputStreamWriter out = new
* OutputStreamWriter(huc.getOutputStream(), "8859_1"); out.write( "……"
* ); out.flush(); out.close();
*/
// 取得该连接的输入流,以读取响应内容
InputStreamReader insr = new InputStreamReader(
httpsConn.getInputStream());
// 读取服务器的响应内容并显示
int respInt = insr.read();
while (respInt != -1) {
System.out.print((char) respInt);
respInt = insr.read();
}
}
}
分享到:
相关推荐
小程序访问HTTPS显示网络错误解决方案 小程序访问HTTPS时,可能会出现网络错误、微信打开HTTPS空白、浏览器访问正常的情况。这种情况下,需要对HTTPS证书进行配置和验证,以确保小程序的正常访问。 一、问题描述 ...
在Java编程中,访问HTTPS(安全超文本传输协议)接口通常涉及到处理数字证书,这是为了确保数据传输的安全性。HTTPS通过使用SSL/TLS协议来加密通信,而证书是该协议的一部分,用于验证服务器的身份。本篇文章将深入...
解决 Linux 下访问 HTTPS 站点问题:证书无效 在 Linux 系统中访问 HTTPS 站点时,可能会遇到证书无效的问题,导致无法访问网站。这是因为 Linux 系统中没有信任该网站的证书颁发机构(Certificate Authority,CA)...
本文将详细介绍如何使用`HttpClient`和`HttpsURLConnection`两种方式来访问HTTPS网站,包括验证证书和不验证证书的实现方法。 ### 1. Android中的HttpClient `HttpClient`是Apache提供的一种HTTP客户端库,它支持...
本代码使用MFC方式实现了如下功能: ...2> 集成OpenSSL POST访问HTTPS站点。可成功登陆小米官网。 文件包内含有完整的,编译好的OpenSSL开发需要的头文件以及库文件等,可以方便的使用在您的项目中。
在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在网络应用开发中。HTTPS(HyperText Transfer Protocol Secure)是一种安全通信协议,用于确保数据在客户端和服务器之间的传输过程是加密的,保护了...
使用java写的访问https网络协议的网址,绕过了证书的验证
在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在需要安全传输敏感数据或确保数据完整性时。这里我们将深入探讨如何使用Java 1.7版本处理这一过程,包括处理SSL证书。 首先,理解HTTPS(超文本...
Windows 2003无法访问HTTPS网站解决方案(补丁) 解决服务器不支持证书问题!
解决 https post 会报scoket ...上次开发访问https出错了,post 一直出错在网络上找的很,下载了好多个都没有解决问题,后面才找到问题,跟大家分享一下。包含delphi 源码和libeay32.dll ssleay32.dll 两个ssl文件.
delphi访问https参数验证 HMAC_SHA256 控件包Chilkat Delphi DLL API v9.5.0.58 chilkat 库的delphi 动态库版本Chilkat_Keygen_v2.0_By_DFoX.exe。 params: symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&...
1. **证书验证**:访问HTTPS网站时,需要处理服务器的数字证书,确认其合法性。如果忽视证书验证,可能导致安全问题。 2. **SSL/TLS握手**:HTTPS协议涉及到SSL/TLS的握手过程,需要正确配置SSL版本和加密套件。 3...
在Windows环境下,使用Curl和OpenSSL访问HTTPS网站是一个常见的任务,特别是在开发涉及网络通信的C++应用程序时。本文将详细介绍如何在Windows下利用Curl和OpenSSL库实现HTTPS访问,并提供一个实例来帮助理解这一...
android HttpClient访问某些Https时,出现了问题,无法访问,好像是要安全验证。此Demo解决了此问题,HttpClient能够Https和Http类型的URL了。 在eclipse下打开工程若有乱码,请把eclipse的字符编码改成UTF-8。