用IDHTTP1读取POST网页A,它会重新定向网页B,POST响应返回的数据时提示正在重新fresh定向网站B等信息但是我需要的是想读取A这个网页的返回内容,请问要怎么才能实现?

解决方案 »

  1.   


      IdHTTP1.HandleRedirects:=False;//这行是让IdHTTP1不自动跳转
      try
        sHtml:=IdHTTP1.Post('http://................);
      except
      end;
      

  2.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
      IdHTTP, StdCtrls, IdIntercept;type
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure IdHTTP1Status(ASender: TObject; const AStatus: TIdStatus;
          const AStatusText: String);
        procedure IdConnectionIntercept1Receive(
          ASender: TIdConnectionIntercept; AStream: TStream);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
            mstr: string;
            idHttp1: TIdHttp;
            IdConnectionIntercept1: TIdConnectionIntercept;
    begin
            Memo1.Lines.Clear;
            idHttp1 := TIdHttp.Create(nil);
            IdConnectionIntercept1 := TIdConnectionIntercept.Create(nil);
            IdConnectionIntercept1.OnReceive := IdConnectionIntercept1Receive;
            idHttp1.Intercept := IdConnectionIntercept1;
            try
                    mstr := IdHttp1.Get(Edit1.Text);
            except
            end;
            IdConnectionIntercept1.Destroy;
            idHttp1.Destroy;
    end;procedure TForm1.IdHTTP1Status(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
    begin
            Memo1.Lines.Add(AStatusText)
    end;procedure TForm1.IdConnectionIntercept1Receive(
      ASender: TIdConnectionIntercept; AStream: TStream);
    var ss: TStringList;
    begin
            Memo1.Lines.Add('------');
            ss := TStringList.Create;
            ss.LoadFromStream(AStream);
            Memo1.Lines.AddStrings(ss);
            ss.Destroy;
    end;end.