用SSLSocketFactory 连接https的地址
发布时间:2020-12-15 03:14:12 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 package com.wtf.demo.socket; import javax.net.ssl.SSLSocket;import javax.net.ssl.SSLSocketFactory;import java.io.*; /** * Created by wtf on
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 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(); } } } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |