Delphi 使用indy获取直接fileserve.com下载链接时出现问题
当我尝试使用indy(delphi 2007)获取直接下载链接时,我遇到了一个问题 我使用此代码成功地使用我的高级帐户登录(fileserve.com)Delphi 使用indy获取直接fileserve.com下载链接时出现问题,delphi,indy,Delphi,Indy,当我尝试使用indy(delphi 2007)获取直接下载链接时,我遇到了一个问题 我使用此代码成功地使用我的高级帐户登录(fileserve.com) procedure TForm1.Button1Click(Sender: TObject); var i:integer; Data, Page : TStringList; begin Data := TStringList.Create; idhttp1.OnRedirect := IdHTTP1Redirect; idhttp1.Al
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Data, Page : TStringList;
begin
Data := TStringList.Create;
idhttp1.OnRedirect := IdHTTP1Redirect;
idhttp1.AllowCookies := True;
idhttp1.HandleRedirects := True;
idhttp1.ProtocolVersion := pv1_1;
idhttp1.CookieManager := IdCookieManager1;
idhttp1.RedirectMaximum := 15;
idhttp1.Request.UserAgent := 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1)';
Data.Add('loginUserName=[user]&loginUserPassword=[pass]&autoLogin=&loginFormSubmit=Login');
IdHTTP1.Post('http://www.fileserve.com/login.php',Data);
idHTTP1.get('http://www.fileserve.com/file/aYkRqp3');
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do
form1.Memo2.Lines.Add(IdCookieManager1.CookieCollection.Items[i].CookieText);
end;
procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: string;
var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
form1.Edit1.Text := dest; //this will show the direct link after "idHTTP1.get" download the hole file
end;
我想从这个链接获得直接下载链接,例如fileserve.com/file/aYkRqp3
但上面的代码将下载文件,然后显示直接链接,我不希望我想得到没有下载文件的直接链接。。。
fileserve从重定向到这样的直接链接
我只想直接链接我的英语如何做到请原谅为了避免在重定向时下载,您可以在
TIdHTTP.OnRedirect
事件中将TIdHTTP.HandleRedirects
设置为False,将Handled
设置为True。当TIdHTTP.Get()
退出时,重定向的URL将位于TIdHTTP.Response.Location
属性中。例如:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Data, Page : TStringList;
begin
IdHTTP1.OnRedirect := nil;
IdHTTP1.AllowCookies := True;
IdHTTP1.HandleRedirects := True;
IdHTTP1.ProtocolVersion := pv1_1;
IdHTTP1.CookieManager := IdCookieManager1;
IdHTTP1.RedirectMaximum := 15;
IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1)';
Data := TStringList.Create;
try
Data.Add('loginUserName=[user]');
Data.Add('loginUserPassword=[pass]');
Data.Add('autoLogin=');
Data.Add('loginFormSubmit=Login');
IdHTTP1.Post('http://www.fileserve.com/login.php', Data);
finally
Data.Free;
end;
IdHTTP1.HandleRedirects := False;
IdHTTP1.OnRedirect := IdHTTP1Redirect;
IdHTTP1.Get('http://www.fileserve.com/file/aYkRqp3');
Edit1.Text := idHTTP1.Response.Location;
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do
Memo2.Lines.Add(IdCookieManager1.CookieCollection.Items[i].CookieText);
end;
procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: string; var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
Handled := True;
end;
非常感谢你的帮助,你太棒了!