以前不管是做什么软件,只要是关于网页post提交cookie的,我都是用TcpClient,为什么呢?因为我一直找不到idhttp提交Cookie的方法,今天终于有了结果。
在Idhttp中,要想修改Cookie的代码,就要用到Request的RawHeaders中的Values值。这个值怎么用呢? Values接受一个string的值,该值指定了所访问的变量。如HTTP头是这样定义的(其中一些):
Accept-Language: zh-cn
Content-Type: application/x-www-form-ur
lencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
SV1; Cookie: JSESSIONID=aoOYvjM-IKzh 而Values的值就可以是Cookie,User-Agent,Accept-Encoding……等等。 所以,代码应该是这样:
- try
- idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值'; //
- memo1.Lines.Add(idhttp1.Request.RawHeaders.Values['Cookie']);
- idhttp1.Post('/webmail/login.jsp',data1,data2);
- memo1.Lines.Add(idhttp1.Request.RawHeaders.Values['Cookie']);
- idhttp1.Request.RawHeaders.Values['Cookie'] := 'asdfasdf';
- memo1.Lines.Add(idhttp1.Request.RawHeaders.Text);
- except idhttp1.Get(idhttp1.Response.Location, data1);
- end;
初一看,这代码是没有什么问题的。但,memo1的第一次ADD并没有任何值,奇怪。而第三次ADD就被改为了'asdfasdf',正是我们所希望的。我正是卡在了这里。
为什么第一次idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值';
没有结果呢? 搞了很久。我才发现,在第一次传值的时候,RawHeaders跟本没有被初始化。而第三次经过Post以后,RawHeaders被初始化了,所以得到了我们所要的结果。也就是说,在写漏洞上传程序这些的时候,如果先Post让RawHeaders初始化,那就没什么意义了,因为Post的时候,Cookie就不能被带上了。 正确的代码应该是这样:
- try
- idhttp1.Request.SetHeaders; //最重要的初始化。
- idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值'; i
- dhttp1.Post('/webmail/login.jsp',data1,data2);
- except idhttp1.Get(idhttp1.Response.Location, data1);
- end;
这里,最重要的初始化是必需的。 idhttp1.Request.SetHeaders 这个过程如果没有。就会出错。
RAR压缩文件,用DELPHI编的程序打开它并解压到某一目录,怎么实现的?
例子:winrar.exe e -y C:\WINDOWS\Desktop\ghost.rar d:\
但新的问题出来了,如果在解压过程中用户终止了解压,我怎么在程序中判断解压是否
顺利完成了的!winrar 异常终止一个解压进程会发出异常消息吗?
自己又查到了:AR 成功操作后返回 0 。非 0 返回码意味着操作由于某种错误被取消:
&nbs
目前网页采集多为3P代码为多(3P即ASP、PHP 、JSP)。用得最有代表的就动易科技公司BBS中新闻采集系统,和网上流传的新浪新闻采集系统等都是用ASP程序来使用,但速度从理论上来说不是很好。如果尝试用其它软件的多线程采集是不是更快?答案是肯定的。用DELPHI、VC、VB、JB都可以,PB似乎比较不好做。以下用DELPHI来解释采集网页数据。
一、 简单的新闻采集
新闻采集
三行代码搞定天气预报
关键字:delphi,天气预报,WebBrowser
前两天在根客户聊天的时候,偶尔谈到在我们的软件主界面上添加一个天气预报的功能。
当时只是随口说说,没想到客户认真了,一定要实现这个功能,没办法了,只有做出来了。
客户哪所以的PC都是可以登录Internet的,所以,
可以先用Photoshop 截取一个图片,如下图的图片,然后新建一个程序,把程序Form 设为透明,方法如下,Form1.color=clmaroon TransparentColorValue=clMaroon, TransparentColor=clmaroom, Form1.BorderStyle=bsNone ,这样,这个窗体就成为了一个无界面,无标题栏的窗体,新建一个image ,把截取的图片载入,运行下试试,是不是很靓的窗







