QT_利用qt编写一个半自动的126邮箱注册机
2015-07-31 23:20
323 查看
序
今天下午研究了一下午,终于明白了这种软件的原理,是通过http协议向服务器发送一个注册的请求顺便把注册信息发过去,注册便成功了(感觉好简单- -)http协议功能
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网站
以上摘自百度百科
具体实现原理
使用抓包工具(我用的是ie11,然后用httpwatch pro抓的包)获取发送请求的地址和要发送的数据包,然后通过发送出去。用ie11打开126邮箱的注册界面,输入要注册的账号密码后,运行httpwatch,点击左上角的record,然后在注册界面点击注册,就会发现httpwatch加了一些东西,那就是抓到的数据包。
如果不出意外地话出现的就应该是这个东西
下图中received之前的几列不用管(其实是并不知道有什么卵用),然后Method就是请求方法(注1),result是返回的结果即响应码(注2),最后一个就是要发送POST请求的地址。
至于为什么会出现两个POST请求我也不知道= = (新手勿喷),但是第二个是发送你的注册信息的,点击第二个,在httpwatch的下面就会出现这个包的详细信息
其中最主要的就是OverView中的URL,要向该地址发送请求
然后就是POST Data,其中记录了发送的数据
这里面最重要的就是最下面一句,是你的请求正文,这样就获得了请求正文的消息格式
name=你要注册的名字&flow=main&uid=你要注册的名字%40126.com&password=注册的密码&confirmPassword=注册的密码&mobile=&vcode=验证码&from=126mail
然后把它发送出去就行了
验证码
虽然上面说的很简单但是实践起来就出现了很多问题,比如困扰我快一个周的获取验证码的图片,通过httpwatch抓包发现获取验证码的URL每次都发生变化。注:
1、HTTP规范定义了8种可能的请求方法:GET 检索URI中标识资源的一个简单请求
HEAD 与GET方法相同,服务器只返回状态行和头标,并不返回请求文档
POST 服务器接受被写入客户端输出流中的数据的请求
PUT 服务器保存请求数据作为指定URI新内容的请求
DELETE 服务器删除URI中命名的资源的请求
OPTIONS 关于服务器支持的请求方法信息的请求
TRACE Web服务器反馈Http请求和其头标的请求
CONNECT 已文档化但当前未实现的一个方法,预留做隧道处理
2、HTTP响应码:
1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误:
相关文章推荐
- Qt点击按钮打开图片
- [记录]学习<<QT学习之路2>>第四天
- QT4文件搜索的例子
- Qt实战之开发CSDN下载助手 (3)(结束篇)
- Qt实现Rasdial宽带拨号
- qt5 采集摄像头的视音频
- 使用qmake交叉编译一个桌面qt工程
- Qt的窗口的最大化。
- Qt5.4(later)树莓派2 交叉编译环境搭建
- qtcreator 交叉编译 配置
- 关于Qt的MVC
- Qt中定时器的使用
- Qt 5.3 下OpenCV 2.4.11 开发(7)单通道直方图绘制
- Qt归纳(四)
- Qt归纳(三)
- Qt归纳(二)
- Qt归纳(一)
- Qt重绘之update,repaint详解
- vs2013+qt+opencv3.0配置
- Qt - OpenCV的安装与配置 (win7 64 bit + OpenCV3.0 + minGW32)