Java https访问
来源:互联网 发布:行知小学 编辑:程序博客网 时间:2024/05/27 12:20
public class SslUtils {
private static void trustAllHttpsCertificates()throws Exception {
TrustManager[] trustAllCerts =new TrustManager[1];
TrustManager tm =new miTM();
trustAllCerts[0] =tm;
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null,trustAllCerts, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}
static class miTM implements TrustManager, X509TrustManager {
public X509Certificate[] getAcceptedIssuers() {
returnnull;
}
publicboolean isServerTrusted(X509Certificate[]certs) {
returntrue;
}
publicboolean isClientTrusted(X509Certificate[]certs) {
returntrue;
}
publicvoid checkServerTrusted(X509Certificate[]certs, String authType) throws CertificateException {
return;
}
publicvoid checkClientTrusted(X509Certificate[]certs, String authType) throws CertificateException {
return;
}
}
/**
* 忽略HTTPS请求的SSL证书,必须在openConnection之前调用
* @throws Exception
*/
public static void ignoreSsl()throws Exception{
HostnameVerifier hv =new HostnameVerifier() {
publicboolean verify(String urlHostName, SSLSessionsession) {
System.out.println("Warning: URL Host: " +urlHostName + " vs. " + session.getPeerHost());
returntrue;
}
};
trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);
}
public static void main(String[]args){
//网络地址 通过字符串,生成URL对象
URL url=null;
// 网络会话链接
HttpsURLConnection conn=null;
//获取网站返回的输入流
InputStream in=null;
//每次读的字节数
byte[]data =new byte[1024];
//每次读到的字节数,一般是1024,如果到了最后一行就会少于1024,到了末尾就是 -1
intlen=0;
//本地的输出流
ByteArrayOutputStream os;
try
{
url=new URL("https://www.91160.com/");
// HttpPost httpost = new HttpPost("https://www.oschina.net/action/user/login");
//
// List <NameValuePair> nvps = new ArrayList <NameValuePair>();
// nvps.add(new BasicNameValuePair("email", "levelh@163.com"));
// nvps.add(new BasicNameValuePair("pwd", "1111"));
//
// httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
ignoreSsl();
conn=(HttpsURLConnection)url.openConnection();
//默认是get 方式
conn.setRequestMethod("POST");
// 设置是否向connection输出,如果是post请求,参数要放在http正文内,因此需要设为true
conn.setDoOutput(true);
// Post 请求不能使用缓存
conn.setUseCaches(false);
//设置请求头 一般没特殊要求, 不需要
//conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
// 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
// 要注意的是connection.getOutputStream会隐含的进行connect,所以下面这句可以不要
//conn.connect();
//要上传的参数
PrintWriter pw=new PrintWriter(conn.getOutputStream());
String content = "email=levelh@163.com&pwd=1111";
pw.print(content);
pw.flush();
pw.close();
//时候需要获取输入, 废话,当然需要返回,最少要返回状态吧。 所以默认是true
//conn.setDoInput(true);
in=conn.getInputStream();
os=new ByteArrayOutputStream();
while ((len=in.read(data))!=-1)
{
os.write(data,0,len);
}
in.close();
System.out.println((os.toByteArray()));
} catch (Exceptione)
{
e.printStackTrace();
}
}
}
- Tomcat创建HTTPS访问,java访问https
- java 访问https站点
- JAVA访问Https
- java访问https请求
- java https访问
- java 后台访问https
- java https访问
- Java实现https访问
- java访问https请求
- Java https访问
- Java访问https接口实现
- Java访问https接口实现
- Java访问https接口实现
- java 访问https忽略证书
- Java访问https接口实现
- 【JAVA/HTTPS】JAVA生成ks,证书,tomcat配置HTTPS访问
- java通过代理访问外网https
- JAVA访问HTTPS协议的Web Service
- eclipse项目上传github或码云
- Vue的Class 与 Style 绑定
- 时区修改
- Markdown编辑器用法
- 廖老师python教程实战Day5-编写web框架理解
- Java https访问
- [Err] ORA-02289: sequence does not exist序列不存在
- Android 7.1 GUI系统-窗口管理WMS-窗口大小计算(五)
- Linux 安装vsftpd
- django CKeditor 正常显示富文本
- Codeforces Round #451 (Div. 2) D. Alarm Clock
- Windows下使用Python配制环境以及打开方式
- 迷宫系列(三)利用BFS/DFS的数据得到最短路/通路
- 推荐系统经典论文文献及业界应用