遇到难题,用delphi下载文件函数但无奈需要登录验证后才能下载,请大师指教怎么实现,在线等。。。。

zhangliang7484 2019-01-31 09:59:05
我用的是delphi7.0开发的,目前有一个需求,我需要通过http下载一个指定文件,但是这个文件
直接调用 DownloadFile(SourceFile, DestFile) 这个函数,没有会话信息,自动重定向到登录界面,不能通过验证,造成文件获取失败。
单独在IE浏览器,登录后手工复制地址能够下载该文件,但是登录后运行DELPHI后台程序 ,还是下载获得不到那个文件,取下来的文件仅仅是重定向后的首页,我想用delphi 写怎么写入会话session,让我能够取到那个文件。

Uses URLMon, ShellApi;
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;

procedure TForm1.Button1.Click(Sender: TObject);
const
// URL Location
SourceFile := 'http://www.google.com/intl/de/images/home_title.gif';
// Where to save the file
DestFile := 'c:\temp\google-image.gif';
begin
if DownloadFile(SourceFile, DestFile) then
begin
ShowMessage('Download succesful!');
// Show downloaded image in your browser
ShellExecute(Application.Handle,PChar('open'),PChar(DestFile),PChar(''),nil,SW_NORMAL)
end
else
ShowMessage('Error while downloading ' + SourceFile)
end;
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
虎子8 2019-02-03
  • 打赏
  • 举报
回复
下载HTTP Debugger Pro软件,能够分析登录请求的具体报文。
zhangliang7484 2019-02-01
  • 打赏
  • 举报
回复
引用 1 楼 xsl510079027 的回复:
先用httpdebug抓包,在ie下,从登录到下载操作一次,分析一下,登录和下载的报文。delphi这边用indy模拟一下即可


能具体一点吗,或者给个QQ,我具体联系一下你
zhangliang7484 2019-02-01
  • 打赏
  • 举报
回复
能具体一点吗,没有搞过这个httpdebug是用自带的还是下载一个
虎子8 2019-02-01
  • 打赏
  • 举报
回复
先用httpdebug抓包,在ie下,从登录到下载操作一次,分析一下,登录和下载的报文。delphi这边用indy模拟一下即可

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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