• dephi中用idhttp提交cookie


    以前不管是做什么软件,只要是关于网页post提交cookie的,我都是用TcpClient,为什么呢?
    因为我一直找不到idhttp提交Cookie的方法,今天终于有了结果。

    在Idhttp中,要想修改Cookie的代码,就要用到Request的RawHeaders中的Values值。
    这个值怎么用呢?
    Values接受一个string的值,该值指定了所访问的变量。
    如HTTP头是这样定义的(其中一些):
    Accept-Language: zh-cn
    Content-Type: application/x-www-form-urlencoded
    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的值';
      idhttp1.Post('/webmail/login.jsp',data1,data2);
    except
      idhttp1.Get(idhttp1.Response.Location, data1);
    end; 


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

    http://www.cnblogs.com/taobataoma/archive/2007/08/16/858345.html

  • 相关阅读:
    Linux 部署 .net
    转载:什么才是真正的 RESTful 架构
    Web Api资料
    nginx 配置
    Nginx 资料
    session、cookie资料
    WCF 资料
    投资
    解决在控制层springmvc框架发出的400状态的错误
    解决springmvc在单纯返回一个字符串对象时所出现的乱码情况(极速版)
  • 原文地址:https://www.cnblogs.com/sunsoft/p/1965629.html
Copyright © 2020-2023  润新知