欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

用SSLSocketFactory 连接https的地址,,package com.

来源: javaer 分享于  点击 19843 次 点评:231

用SSLSocketFactory 连接https的地址,,package com.


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 &amp;&amp; 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();            }        }    }}
相关栏目:

用户点评