Jsoup+JavaMail实现自动投票,验证邮箱功能

来源:互联网 发布:单片机 以太网MAC 编辑:程序博客网 时间:2024/06/05 02:09

前几天,突然接到boss任务,说客户要在手机上,实现一个自动投票的功
能。而且要一天搞出来。让暴风雨来的更猛烈吧!加班的节奏吗?

虽然是个小工具,但是麻雀虽小,五脏俱全。首先,先拆分下自动投票的需求,以及投票生效条件:

1、在网站上输入用户名,和邮箱账号,然后点击确认;系统自动向邮箱发送一个链接。
2、登录邮箱账号,打开链接,跳转到该网站的页面,投票完成。

boss给我的就只有一个页面,页面上圈了几个圈,所有文字加起来不超过100个文字;当我被叫去办公室的时候,心情有点复杂,有点虚。 没关系,问题总有解决方案嘛。多问问身边的大牛。

其实等你看完本篇,你会觉得也没那么困难哈!

开始网上各种查找资料,也问了公司大牛,因为是Https,所以他推荐使用

Fiddler抓包工具,把访问的内容抓下来,分析下post请求就可以轻松搞定。

Fiddler抓Https的包,需要在tools里,打开HTTPS选项,勾选,如下图:

这里写图片描述

点击File->Capture traffic ,会弹出安装证书操作,需要下载证书,下载完,

双击证书安装,然后重启Fiddler后,就可以抓Https包了。

没错,第一步就是分析Post请求,然后用HttpURLConnection组装下post请

求就OK了。原来,真理都是这么简单。

在浏览器点击后,Fiddler就抓到数据包了,点击左边链接后,在右边可以看

到数据都分析好了,我们只需要拷贝粘贴就可以了,哈哈!

这里写图片描述

分析Header中的相关字段:

这里写图片描述

分析POST参数:

这里写图片描述

整个投票过程到这里差不多了,接下来就是用代码去Post请求了。

分析之后,发现需要将整个网页爬下来,然后读取里面的一个随机ID值,并放入POST参数中,才可以。网页分析,我使用Jsoup框架,简单粗暴。这里我掉入一个坑,就是用HttpClient实现get请求时,在Android手机上是有限定大小的,无法将整个网页读取下来;至今我也不知道,这个上限是多少。但是为了节约时间,我果断选择用Android自带的HttpUrlConnection组件,进行操作。果然,问题立马解决了。

接下来就是网上找接收邮件的代码啦。网上代码千篇一律,很多都不全,或

者都不能用。最后还是上github上一搜,搜出了个Demo出来,左拼右凑,谢

天谢地,总算可以接收邮件了。嘿嘿。

最后,整合到APP里,实现完整的功能。下面是APP大致的实现流程图。

这里写图片描述

最后,就是测试,修BUG,写说明文档,交差啦。哈哈,希望能帮助到需要的

人吧。

项目还是eclipse,本来是用AS的,后来运行的时候,报错了,没时间去搞,

只好先拿eclipse来救急了,注释也不多哈,看代码要有底子哦!

项目下载地址

原创粉丝点击