文档章节

https Java客户端

二两豆腐
 二两豆腐
发布于 2015/12/29 10:51
字数 190
阅读 91
收藏 3

行业解决方案、产品招募中!想赚钱就来传!>>>

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();
            }
        }
    }

}


二两豆腐
粉丝 22
博文 105
码字总数 88374
作品 0
朝阳
高级程序员
私信 提问
加载中
请先登录后再评论。
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
5.5K
8
HTTPS切换工具--HttpsSwitcher

HttpsSwitcher 是一个帮你进行 HTTPS 切换的 Chrome 插件,本工具可以帮你尝试使用https打开指定的域名,点击本插件的浏览器图标后会自动切换本标 签页的http/https状态,并且会记住你的选择...

leehorsley
2013/01/26
921
0
研究虚拟机--Jikes RVM

Jikes研究虚拟机(Jikes Research Virtual Machine,简称Jikes RVM)是一种成熟的用于执行Java程序的虚拟机,其早期版本与当前版本分别在通用公共许可证(CPL)与Eclipse公共许可证(EPL)下开...

匿名
2013/02/13
1K
0
Swing界面分析和调试工具--Swing Inspector

Swing Inspector是一个Java Swing/AWT用户界面分析和调试工具,功能与firebug类似,具有强大的Swing/AWT用户界面分析和调试相关功能。 适用于从java swing初级到高级的所有开发人员,能够快速...

匿名
2013/03/06
3.3K
0
Password Manager Daemon

pwmd(Password Manager Daemon) 通过 Unix domain socket 提供服务,数据存储在加密的 XML 文件中,客户端必须提供密钥才能修改。支持多线程,可同时允许多个客户端同时连接。 特性 通过 ...

匿名
2013/03/12
425
0

没有更多内容

加载失败,请刷新页面

加载更多

揭秘神秘的MarxDB

主题:MarxDB金融级分布式数据库 大纲: 1、石老师好像是第一次来3306π,可以先重点自我介绍一下。 2、石老师可以简单介绍一下MarxDB的情况吗? 3、跟传统的关系型数据库相比,MarxDB有什么...

叶金荣
昨天
0
0
ASP.NET Core搭建多层网站架构【13-扩展之支持全球化和本地化多语言】

2020/02/03, ASP.NET Core 3.1, VS2019, ResXManager 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【13-扩展之支持全球化和本地化多语言】 使用资源管理多语言文件实现网站本地化...

osc_wip0vvls
15分钟前
9
0
浙江移动正式采用蚂蚁集团自研数据库OceanBase

近日,浙江移动正式引入蚂蚁集团的自研数据库OceanBase,首期应用于其政企网格智慧运营系统,这也是OceanBase首次落地于运营商场景。 政企网格智慧运营平台是浙江移动针对政企用户推出的服务...

支付宝技术
昨天
0
0
使用Charles代理功能将网络请求定向至本地文件

  最近在进行前端开发的时候发现Charles一个非常牛叉的功能,就是可以通过代理将网络请求定向至本地文件。有了这个功能在进行iOS开发时就可以在缺少后台接口的情况下更加真实的进行数据moc...

osc_qvtw8r10
16分钟前
7
0
多边形裁剪图片升级啦!Cocos Creator !

支持合图,支持gizmo添加节点和调整位置,支持缩放旋转。文章底部获取完整项目! 效果预览与使用 原理 回顾 在gizmo入门探索介绍了 gizmo 与多边形裁剪的配合。 在使用 mesh 实现多边形裁剪图...

白玉无冰
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部