我想用程序实现提交这个网页内的表单,并读取根据提交内容生成的生辰图网页,用idhttp试验多次,只能下载回来提交前的表单,怎样才能取回带有生辰图的网页呢?http://www.go108.com.cn/unit007/item00209/result.php

解决方案 »

  1.   

    你要根据获取的表单参数提交才可以, 其实输入昵称后,是重新提交刷新了的页面的。
    用 Fiddler 抓取提交的表单参数。
      

  2.   

    我用fiddler抓取了表单的参数,按照那些参数填写好提交了,结果还是返回未提交的表单,这个代码很小,能否给做个例子试试?拜谢
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Request: TStrings;
      Response: TStringStream;
      ss:Tstringlist;
    begin
      idhttp1.HandleRedirects := true;
      idhttp1.ReadTimeout := 60000;
      //idhttp1.ConnectTimeout := 60000;
      IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
      SS := TStringList.Create;
      SS.Add('nickname=nicevoice&birthdayyear=1988&birthdaymonth=8&birthday=11&birthdayhour=19&birthdaymin=30&longitude=128&latitude=35&timezonevalue=-8&recom=');  request := TStringList.Create;
      Response := TStringStream.Create('');  //request.Add('q=test');
      try
        //IdHTTP1.Get('http://www.go108.com.cn/unit007/item00209/index.php', Response);
        IdHTTP1.Post('http://www.go108.com.cn/unit007/item00209/result.php',ss, Response);
        Memo1.Lines.Text :=Response.DataString;
      except
        on e:
        Exception do
        begin
          application.MessageBox('连接失败','错误',MB_OK);
        end;
      end;
    end;
      

  4.   

    IdHTTP1.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)';加一个这个试试,可能会检测是你什么浏览器访问的
      

  5.   

    加上那句话还是不行这是我用fiddler截取的网页提交内容,不知道header里面哪些是必须的,请指点下
      

  6.   

    看来我的水平是不够帮你了,我刚用fiddler看,居然他自己就显示不全网页,我的win7.
    另外你要是post,表单内容都要提交,不管必须不必须。 题外你创建了的东西都要free。
      

  7.   

    我把网页保存在本地,去掉了绝大多数内容,只保留了一个表单,只填写名称,仍然可以提交成功,是不是因为网页读取了本地的cookie?
      

  8.   

    那怎么改delphi才能显示正常提交并得到返回的页面呢?
      

  9.   

    1.参数不全
    2.区分大小写
    3.birthdayDay,你写的是birthday,错了procedure TForm1.Button1Click(Sender: TObject);
    var
            ss: TStringList;
            mstr: string;
    begin
            idhttp1.HandleRedirects := True;
            ss := TStringList.Create;
            ss.Add('nickName=nicevoice');
            ss.Add('birthdayYear=1988');
            ss.Add('birthdayMonth=8');
            ss.Add('birthdayDay=11');
            ss.Add('birthdayHour=19');
            ss.Add('birthdayMin=30');
            ss.Add('place1=北京市');
            ss.Add('place2=北京市');        mstr := idhttp1.Post('http://www.go108.com.cn/unit007/item00209/result.php',ss);
            Memo1.Lines.Add(mstr);
            ss.Destroy;
    end;