如何在Delphi 2007中的受密码保护的位置下载文件

时间:2011-12-18 20:00:44

标签: html delphi file download

我需要从Web获取HTML页面的内容,但相应资源的内容仅在用户登录网站后才可用。

更具体地说,我需要下载在Youtube上被标记为不当的视频文件的HTML页面。我确实有登录凭据,但我不确定如何继续登录。

我目前正在使用来自Synapse的HTTPSend下载非密码保护的HTML页面,而且我还拥有我之前项目中使用的Clever Internet Suite 7的许可副本。

我正在使用的代码看起来像这样(这是严格的信息,我可以在必要时更改方法):

function GetHTMLFile(s: string): string;
var
  sHTTPSource:TStringList;
  HTTP: THTTPSend;
begin
  try
    sHTTPSource := TStringList.Create;
    if HttpGetText(s, sHTTPSource) then
    begin
      result := sHTTPSource.Text;
    end;
  finally
    sHTTPSource.Free;
  end;
end;

我不指望你为我做所有的工作,但我真的很感激正确方向的暗示。

1 个答案:

答案 0 :(得分:3)

THTTPSend有一个属性.Cookies(TStringList),它采用名称 - 值对(每个都是一个cookie)。如果您使用相同的THTTPSend实例发布登录过程,则将捕获从YouTube发送的cookie,并将使用相同的THTTPSend实例保留在将来的请求中。您可以每次执行此操作(获取新cookie),也可以在向受保护页面发出请求之前将cookie信息硬编码(或软编码)到THTTPSend中。

您也可以只登录一次并将.cookies TStringList保存到某处,每次都将其分配给您创建的新THTTPSend以发出新请求。