IDHTTP读取网页重定向问题

ajmxj 2012-01-14 10:54:59
比如我用IDHTTP1读取www.123.com这个网页,他会重定向到www.abc.com这个页面
但是我需要的是读取www.123.com这个网页的内容,请问要怎么才能实现?

我加上idhttp1.HandleRedirects:=True;直接就读取到www.abc.com这个页面的内容了
...全文
296 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
erhan 2012-01-15
  • 打赏
  • 举报
回复
可以列出来了,具体怎么用,就看你的了,呵呵

unit Unit1;

interface

uses
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);
end;

end.
Mit1208 2012-01-15
  • 打赏
  • 举报
回复
在IDHTTP的OnRedirect事件中写代码截取.
ajmxj 2012-01-14
  • 打赏
  • 举报
回复
肯定看清楚的,HTML有内容的!
erhan 2012-01-14
  • 打赏
  • 举报
回复
你看清楚了?是http的头,还是content?
报文肯定是有内容的,但不一定是HTML
ajmxj 2012-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 erhan 的回复:]
www.123.com这个页面根本没有内容的。
重定向是返回的头里直接带着信息的。
[/Quote]
抓包过的,www.123.com是有内容的,不加这个idhttp1.HandleRedirects:=True,提示“HTTP1.1 302 Found”的错误,加上了就跳转了!!
erhan 2012-01-14
  • 打赏
  • 举报
回复
www.123.com这个页面根本没有内容的。
重定向是返回的头里直接带着信息的。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧