易语言+HttpWatch分析并编写Discuz! X1.51论坛管理器第四课
我们在易语言+HttpWatch分析并编写Discuz! X1.51论坛管理器第三课中提到到每次执行第九条数据返回的内容都不一样,现在我们测试的返回数据如下:<?xml version="1.0" encoding="gbk"?><root><!]></root>我们再把第一课中所截到的第十条数据内容贴出来:
1、第十条数据的链接URL:
http://wgbcwsoft.web-108.com/1.51/misc.php?mod=seccode&update=09245&idhash=SD49e
2、第十条数据的协议头Headers:
(Request-Line) GET /1.51/misc.php?mod=seccode&update=09245&idhash=SD49e HTTP/1.1
……
Host wgbcwsoft.web-108.com
Referer http://wgbcwsoft.web-108.com/1.51/forum.php
……
3、第十条数据的查询字串Query String:
idhash SD49e
mod seccode
update 09245
4、第十条数据的返回数据Content:
5、第九条数据在第一课中的返回数据:
<?xml version="1.0" encoding="gbk"?>
<root><!misc.php?mod=seccode&update=09245&idhash=SD49e" class="vm" alt="" />]]></root>
从上面第1和5不难看出,要取验证码那我们只需用GET方法把第九条数据返回的SRC内容(上面红色部分)和Host连接起,也就是第一条数据在易语言中用命令“HTTP读文件”就可以获取验证码图片。在第三课中也提到过查询字串里idhash和update每次都变化,那我们只需把第九条数据返回的如:misc.php?mod=seccode&update=20283&idhash=Sn2TZ 取出来就可以,下面我们来写代码。我们先想想要如何取这断字串呢,返回数据文本不算太长,那我们只需取“src=”和“class”之间的文本就可以,取这断文本时一定要注意引号部分。写代码中……
经测试这样取验证码图片失败,我们先把代码帖出来:
现在我们就要分析为何只返回“Access Denied”,而没有返回验证码图片数据。我们都知道用浏览器打开网页时都会自动生成Cookie,对电脑操作系统熟悉的朋友经常会清除Cookies,那我们简单的说说什么时Cookie及Cookie的作用。
1、Cookie的定义:Cookie是当你浏览网页时网络服务器在本地计算机通过浏览器自动生成的一个信息文本文件,如访问网站的域名,访问开始的时间,访问者的IP地址及浏览器设置等客户端信息。以便客户端下次访问该网络服务器时,浏览器读取相关信息。
2、Cookie的作用:记录你浏览网页时的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网络时,网络服务器通过读取浏览器中的Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
我们简单的了解了Cookie的定义和作用,我们就可以用易语言编写代码来模拟浏览器,存取Cookies,以便实现浏览器中的Cookie的作用。先回家,稍后继续,晕呀宝宝吵着要回家……
2012年3月15日补充:
经反复的实验光取Cookie和设置Cookie也不行,并且还检查过取数据的每一步都是正确的,看来易语言中的“HTTP读文件”命令读取不了像Discuz! X1.51这样的验证码,总是返回“Access Denied”,当然大家可以试着用这命令读取非Discuz!类的网站。下次课我们直接用API来实现取验证码图片……
页:
[1]