QT_利用qt编写一个半自动的126邮箱注册机

今天下午研究了一下午,终于明白了这种软件的原理,是通过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,要向该地址发送请求
QT_利用qt编写一个半自动的126邮箱注册机_第1张图片
然后就是POST Data,其中记录了发送的数据
QT_利用qt编写一个半自动的126邮箱注册机_第2张图片
这里面最重要的就是最下面一句,是你的请求正文,这样就获得了请求正文的消息格式

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:客户端错误:

你可能感兴趣的:(超文本)