清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
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.1\r\n");
out.write("Host:" + host + "\r\n");
out.write("\r\n");
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();
}
}
}
}