求救,WebBrowser组件 能设置 http 的 referer 吗?我需要用 WebBrowser组件 的方法 提交一个表单,用来提交的html网页文件是 放在本地电脑上,最近 那个在线的表单接收程序(PHP的),增加了判断referer,导致我无法再 提交表单了.请问WebBrowser组件 能设置 http 的 referer 吗? 就是 伪造个 假的 来路.查看了Indy 的 idhttp组件,有 referer选项,难道我非要用 idhttp来提交表单了吗?

解决方案 »

  1.   

    另外, idhttp 提交表单的方式,有哪位大哥,可以 给段 带有referer的 完整的代码吗? 谢谢了啊
      

  2.   

    我 找到了 网上一个关于 webbrowser 设置 referer的方法,但是,测试 发布,截取的网络包,却没有发现  提交 referer的信息,大家一块帮忙看看 :var
      Flags, Headers, TargetFrameName, PostData: OLEVariant;
      Url, Ref: string;
      IEApp: OLEVariant;
    begin
      Flags := '1';
      TargetFrameName := '';
      PostData := '';
      Url := 'c:/BBS_POST2.html'; //我本地的表单网页文件
      Ref := 'http://XXX.XXXX.com/cachedir/1052/37/98/3798915_5.htm';//这里设置了 referer
      Headers := 'Referer: ' + Ref + #10 + #13;
      Webbrowser1.Navigate(Url, Flags, TargetFrameName, PostData, Headers);//应该是带有 referer的 载入了本地将要提交的表单网页...end;procedure TForm1.Button3Click(Sender: TObject);//加一个 提交表单的按钮
    begin
    Webbrowser1.OleObject.Document.all.item('submit1').Click; //发送webbrowser1中的表单 
    ......
    以上测试,我用 WPE截取的发出的网络包,数据中没有 任何 referer的信息.难道是 以上的 代码 不正确吗?应该是 在我截取的 上传的 数据中,找到 Referer:'http://XXX.XXXX.com/cachedir/1052/37/98/3798915_5.htm 才对的吧~大家一起讨论啊:)
      

  3.   

    纠正一下,以上代码的 referer是正确的,刚才 截取网络数据包,找到了 referer内容。但有个问题,我提交的表单,发给 在线的 SaveReAnnounce_static.php 文件,这个文件会判断来路referer,以上设置referer代码,并不对这个  SaveReAnnounce_static.php  起作用。这该怎么办呢?我本地提交表单的网页部分代码如下:<form action='http://XXX.AAAAA.com/SaveReAnnounce_static.php' method='POST' name='frmAnnounce'  onsubmit="return VerifyInput();"  target=_parent>
    <input type=hidden name=viewmode value=''>
    <input type="hidden" name="tn" value="">
    <input type="hidden" name="topic_name" value="3798915">
    <input type="hidden" name="parent_id" value="3798915">
    <input type="hidden" name="board_id" value="1052">
    <input type="hidden" name="check_id" value="ax1e21a0c411f794dd5b1b1078177d33346d"><input type="hidden" name="topic_id" value="3798915">
    <input type='hidden' name='Page' value='4'>
    如何让 在线的 SaveReAnnounce_static.php 认为我是“自定义”的referer呢?