说是小工具,其实就是个简单的HTTP请求工具,通过url来获取网页源代码的,以前一直用httpclient的,后来无聊就自己用socket重新写了一个,实现了一些简单的额功能,暂时提供post和get方法,具有cookies记忆功能,支持常用的http1.0和1.1的协议。解码方式暂时只做了gzip的解码,可以自动识别网页字符格式,省去中文乱码的烦恼了。
因为刚刚完成,基本来说还是有很多bug,把小成果发出来,欢迎拍砖啊,如果有对tcp和http或者socket比较感兴趣的哥们,可以私信我啊,大家一起交流交流。
小组建见附件:
使用示例如下所示:
public static void main(String[] args) throws NumberFormatException, UnknownHostException, IOException, FPHttpException{
// FPRequest是封装http的请求信息的
FPRequest request = new FPRequest("http://news.qq.com");
// FPHttpclient是HTTP具体请求和接收的对象
FPHttpclient client = new FPHttpclient();
// FPResponse是返回的结果集信息
FPResponse response = client.req(request);
// 打印HTTP源代码
System.out.println(response.getStream());
}
运行一下就可以看到QQ新闻的页面结果了。
-------------------------------------------------------------------------------华丽的分割线----------------------------------------------------------------------------------
后来有朋友问我,HTTP1.0和1.1的区别有哪些,我想了想,罗列了一些我日常工作当中接触到的,当然不是很全啊,大家可以补充。
a: 1.0使用短连接,而1.1针对同一站点使用长连接,在我们程序当中有个地方接触的比较明显,http1.1大多使用Content-length和chunked方式去接收网页源代码,而1.0的时候我们更多的是读取到-1的时候认定网页接收完毕,-1其实也就是个一个连接结束标记。1.1当中也可以通过请求头/响应头当中设置存活时间。
b: 1.1增加了许多http头,最明显的就是host,host属性可以解决最大的一个问题是,我们可以在一个ip下部署多个不同域名的网站。
c: 1.0以前是一次只能处理一个web请求,而1.1一次可以并发的处理多个连接,不过这里 有个限制,一般情况下一个域名下最多只会同时建立两条连接进行并发处理。
d: 1.1增加了身份验证机制。
e: 1.1支持断点续传,有个range属性,用来告诉服务器本次是希望从指定位置开始接收文件。
欢迎大家继续补充。
分享到:
相关推荐
然后倒腾了半天,找到了这个直接修改注册表的办法 【使用方法】 (仅针对win7和Office2013 vol版测试过) 1、“Office 2013 图标修复.reg”注册表文件中的路径根据自己的路径修改后使用。 如我的路径是D:\\Program...
初中语文文摘生活倒腾国货体验赚美元的感觉
自己用Python编写的教务学生照片处理程序。根据excel文件,搜索指定目录下所有身份证或学号命名照片,拷贝到指定目录下,可以重新命名为学号或身份证号;上传教育厅需要。没有找到照片的在excel中标注not found。...
总而言之,Spark源码的探索是一个涉及分布式计算、内存管理、数据抽象、调度策略和容错机制等多个领域的深度学习过程。通过阅读和理解Spark的源码,开发者不仅可以提升对Spark框架的理解,还能为实际项目带来更高效...
是否发现自己因为是小菜而不敢轻易倒腾自己的爱机?是不是还为了刷BIOS而不知所措?使用这个工具,让你在Windows下轻轻松松刷BIOS。
为了这小小的需求而去倒腾一个Linux 或 cygwin 都不太合算。所以才有了本文。 repo 只是对Git命令进行了封装,所以我们可以绕过repo直接使用Git命令来下载。 为了方便大家,这里提供了一个Bash脚本,实现一个命令...
最终与同事一样倒腾出一个来。 js年月控件(无日) 使用了jquery,共3个文件,使用说明内附。 下载地址: http://u.115.com/file/f388284d67 广告一下我的QQ群,谢绝只加群不说话的人加入。 WEB前端群:...
单片机是一个超级小型的电脑。 Arduino是一套标准,包括了软件和硬件的设计标准。(类似80年代IBM提出的PC概念) Arduino里的硬件部分是由单片机来实现的。 如果您是专业创客,那我们就来详细探究下Arduino与...
用一个星期研究GD32F4系列的单片机,因为公司项目越来越偏向与GD系列的片子,就借着GD32F407的片子,使用LAN8720的PHY芯片移植了最新的FreeRTOS10.2.0系统,顺便移植进了LWIP2.0.2 网络协议,倒腾了一个星期,重要是...
无聊就自己参考http://www.wdls.com.cn/跟www.32lp.com两个网站的模版瞎倒腾了一会儿~~哈哈~效果还不错。
倒腾了两三天,查询所有的51Testing和播布客网站关于LoadRunner9.5的破解方法,普遍都是用mlr5lprg.dll、lm70.dll覆盖LR9.5安装目录下“bin”文件夹中的对应文件;在手工删除注册信息,然后输入注册码。 其中最麻烦...
这几天myeclipse弹出注册码过期,去网上一搜,要么已过期,要么就剩一两个月。倒腾了半天,发现有一个很好办法,居然可以自己写个小程序,生成注册码,可以试下,我试过了,还可以用哦
分布式事务是现代大规模系统中解决数据一致性问题的关键技术。在多台服务器或多个数据库之间...对于喜欢倒腾的小伙伴,研究2PC以及相关的分布式事务解决方案如LCN,可以帮助提升对高并发、大数据环境下的系统设计能力。
在国王给所有人都戴上黑色帽子的情况下,其中一个囚犯通过推理得知自己的帽子颜色。问题是他是如何推理出这个结论的? **解决方案**: - 假设A、B、C三人被戴上帽子。 - A可以看到B和C的帽子颜色。如果B和C都戴的是...
然后倒腾了半天,找到了这个直接修改注册表的办法 【使用方法】 (仅针对win7和便携版Office2016测试过) 1、“Office 2016 图标修复.reg”注册表文件中的路径根据自己的路径修改后使用。 如我的路径是D:\\Program...
)实时获取地球当前照片的小软件,自己研究了下国内的,风云四号也对外开放当前实时(每小时或45分钟更新一次)地球云图照片,自己倒腾了一下,蛮有意思的。看看我们的母星,地球。大家不要高频刷新图片数据哈,以免对...
重在实践是学习Linux操作系统的重要一步,看很多遍也许不如跟着调试走一遍,然后再自己修改修改做一些小测试。 四、结语 学习Linux操作系统需要掌握多个方面的知识,需要我们从多个角度入手,有效地提高阅读和学习...
最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了。 我的需求是取出指定的列的数据,踩了些坑给研究出来了。 import pandas as pd # 我们的...