用idhttp提交cookie 不指定

青色咖啡 , 2009/12/19 14:42 , delphi基础 , 评论(0) , 阅读(642) , Via 本站原创

以前不管是做什么软件,只要是关于网页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……等等。 所以,代码应该是这样:

 
  1. try
  2.  
  3.  idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值'// 
  4.  
  5. memo1.Lines.Add(idhttp1.Request.RawHeaders.Values['Cookie']); 
  6.  
  7. idhttp1.Post('/webmail/login.jsp',data1,data2); 
  8.  
  9. memo1.Lines.Add(idhttp1.Request.RawHeaders.Values['Cookie']);
  10.  
  11.  idhttp1.Request.RawHeaders.Values['Cookie'] := 'asdfasdf'
  12.  
  13. memo1.Lines.Add(idhttp1.Request.RawHeaders.Text); 
  14.  
  15. except idhttp1.Get(idhttp1.Response.Location, data1); 
  16.  
  17. end
  18.  

 

       初一看,这代码是没有什么问题的。但,memo1的第一次ADD并没有任何值,奇怪。而第三次ADD就被改为了'asdfasdf',正是我们所希望的。我正是卡在了这里。

为什么第一次idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值';

没有结果呢? 搞了很久。我才发现,在第一次传值的时候,RawHeaders跟本没有被初始化。而第三次经过Post以后,RawHeaders被初始化了,所以得到了我们所要的结果。也就是说,在写漏洞上传程序这些的时候,如果先Post让RawHeaders初始化,那就没什么意义了,因为Post的时候,Cookie就不能被带上了。 正确的代码应该是这样:

 
  1.  try
  2.  
  3.  idhttp1.Request.SetHeaders; //最重要的初始化。 
  4.  
  5. idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值'; i
  6.  
  7. dhttp1.Post('/webmail/login.jsp',data1,data2); 
  8.  
  9. except idhttp1.Get(idhttp1.Response.Location, data1); 
  10.  
  11. end;

 

这里,最重要的初始化是必需的。 idhttp1.Request.SetHeaders 这个过程如果没有。就会出错。

DELPHI实现RAR文件解压到指定位置
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来解释采集网页数据。

一、 简单的新闻采集

新闻采集

三行代码搞定天气预报 不指定

青色咖啡 , 2009/11/16 22:53 , 个人作品 , 评论(0) , 阅读(575) , Via 本站原创

三行代码搞定天气预报
关键字:delphi,天气预报,WebBrowser
前两天在根客户聊天的时候,偶尔谈到在我们的软件主界面上添加一个天气预报的功能。
当时只是随口说说,没想到客户认真了,一定要实现这个功能,没办法了,只有做出来了。
客户哪所以的PC都是可以登录Internet的,所以,


可以先用Photoshop 截取一个图片,如下图的图片,然后新建一个程序,把程序Form 设为透明,方法如下,Form1.color=clmaroon TransparentColorValue=clMaroon, TransparentColor=clmaroom, Form1.BorderStyle=bsNone ,这样,这个窗体就成为了一个无界面,无标题栏的窗体,新建一个image ,把截取的图片载入,运行下试试,是不是很靓的窗

分页: 8/26 第一页 上页 3 4 5 6 7 8 9 10 11 12 下页 最后页 [ 显示模式: 摘要 | 列表 ]