用SSLSocketFactory 连接https的地址
发布时间:2020-05-24 22:38:54 所属栏目:Java 来源:互联网
导读:用SSLSocketFactory 连接https的地址
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 package com.wtf.demo.socket;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.*;
/**
* Created by wtf on 2015/12/28.
*/
public class HTTPSClient {
public static void main(String[] args) {
int port = 443;
String host = "sp0.baidu.com";
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket socket = null;
try {
socket = (SSLSocket)factory.createSocket(host,port);
//启用密码组
String[] supportedCipherSuites = socket.getSupportedCipherSuites();
socket.setEnabledCipherSuites(supportedCipherSuites);
Writer out = new OutputStreamWriter(socket.getOutputStream(),"UTF-8");
//https在get中需要完全的URL
out.write("GET https://" + host + "/ HTTP/1.1rn");
out.write("Host:" + host + "rn");
out.write("rn");
out.flush();
//读取相应
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//读取首部
String s;
while(!(s=reader.readLine()).equals("")){
System.out.println(s);
}
System.out.println();
//读取长度
String contentLength = reader.readLine();
int length = Integer.MAX_VALUE;
try{
length = Integer.parseInt(contentLength.trim(),16);
}catch (NumberFormatException e){
// e.printStackTrace();
//这个服务器在响应题的第一行没有发送content-length
}
int c ;
int i =0 ;
while ((c= reader.read())!=-1 && i++ <length){
System.out.write(c);
}
System.out.println();
} catch (IOException e) {
e.printStackTrace();
}finally {
try{
if(socket!=null){
socket.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读
