HTTP报文基本结构,自己写程序发送http包登陆某些网站。

本文介绍了如何深入理解HTTP协议基本结构,并通过Java编程模拟登陆网站,涉及下载证书、解析网页、处理session和token等关键步骤。利用commons-httpclient、jsoup等库实现与服务器交互。
摘要由CSDN通过智能技术生成

          对http协议一直没有深入的研究,前几天寝室一哥们需要 登陆 某网站,批量查询一些客户的信息(大约有几万个客户),因为他嫌自己手动查询太慢(当然他也比较懒),所以找我帮他写一个程序,进行批量查询。刚开始他给我说的时候,我只是简单的说 叫他去用一用 按键精灵 这个软件,能够自动做重复的操作,于是 他听我的 去下载了一个按键精灵 玩了一玩,结果发现满足不了他的需求,并且他嫌按键精灵太慢了,太傻了大笑。没办法 ,我只能给他写代码解决这个问题啦 ,思路很简单就是自己写程序与 某网站的服务器通信,然后写一个循环重复提交自己的客户信息,并解析返回的结果就ok了。由于对http不是非常熟悉,之前也没有类似的开发经历,于是我决定先看看http协议的基本结构,在网上看到一个图,觉得不错(具体链接地址:点击打开链接),要是对http不是很了解的可参考点击打开链接



看完之后 , 心里有点感觉 ,于是开始在网上摸索,于是找到了这样几个包:commons-codec-1.6.jar,commons-httpclient-3.0.1.jar,commons-logging-1.1.3.jar,jsoup-1.8.1.jar(所有的包下载地址:点击打开链接

,前三个包是对http协议的封装,jsoup包是解析网页的包(jsoup中文参考资料:点击打开链接),在网上找了一个demo,然后自己就开始动手了,首先 你需要 去访你想要登陆的 网站去查看 其 登陆 过程,通过查看其 使用的是 get 还是 post 方法  ,当然一般的网站登陆都是使用(https+post),如果是使用https协议,你可能需要把 该网站上使用的证书下载下来(一会我会给出证书下载的代码),不然你和其进行通信是会提示证书错误的。初次访问某网站你能够 得到一个session 值,当然这个session值需要你解析网页获取(一般在返回的头部信息(set-Cookie属性中会有)),有些网站可能还会给你返回一个token(令牌),不过这个值是不会变的,这个值也可以通过解析网页获取到。总之,你需要在你的浏览器中登陆一遍某网站,然后你根据你的浏览器中登陆的过程,你自己写程序模拟浏览器的操作就ok啦,在登陆完成之后,你可能要保存一写你自己的私有信息(对浏览器来说就是cookie),比如,用户名,sessionid,token等,在之后的操作中,你只有给服务器传入这些你的私有信息,浏览器才知道你已经登陆了(一般在你的请求报头中的cookie信息中给出)。总结出来就几点:

1. 如果网站使用https协议,把该网站的证书下载下来 ,并在你的程序中设置一下证书。

2. 在浏览器中模拟登陆过程,并查看每次点击 之后 ,浏览器发送的报文信息。

3. 编写程序模拟浏览器的操作。


下载证书代码:在你的项目工程目录下会出现文件

jssecacerts,即为证书,下一个程序使用了此证书。

package com;

/*
 * Copyright 2006 Sun Micr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值