下载网页源代码,为什么有的电脑快,有的电脑很慢? ( 积分: 100 )

  • 主题发起人 主题发起人 xuhao1
  • 开始时间 开始时间
X

xuhao1

Unregistered / Unconfirmed
GUEST, unregistred user!
下载一个网页,有的电脑上1秒左右,有的确要10多秒,跟网速无关。

不知道是怎么回事。代码:

function GetURL(const aUrl: string): string;
const BufSize=1024;
var
hSession: HINTERNET;
hService: HINTERNET;
lpBuffer: string;
dwBytesRead: DWORD;
begin
Result:='';
SetLength(lpBuffer, BufSize);
hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
if Assigned(hSession) then
begin
hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0);
if Assigned(hService) then
Repeat
InternetReadFile(hService, @lpBuffer[1], BufSize, dwBytesRead);
Result:=Result+Copy(lpBuffer, 0, dwBytesRead);
application.ProcessMessages;
until dwBytesRead = 0;
end;
finally
InternetCloseHandle(hService);
InternetCloseHandle(hSession);
end;
end;
 
下载一个网页,有的电脑上1秒左右,有的确要10多秒,跟网速无关。

不知道是怎么回事。代码:

function GetURL(const aUrl: string): string;
const BufSize=1024;
var
hSession: HINTERNET;
hService: HINTERNET;
lpBuffer: string;
dwBytesRead: DWORD;
begin
Result:='';
SetLength(lpBuffer, BufSize);
hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
if Assigned(hSession) then
begin
hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0);
if Assigned(hService) then
Repeat
InternetReadFile(hService, @lpBuffer[1], BufSize, dwBytesRead);
Result:=Result+Copy(lpBuffer, 0, dwBytesRead);
application.ProcessMessages;
until dwBytesRead = 0;
end;
finally
InternetCloseHandle(hService);
InternetCloseHandle(hSession);
end;
end;
 
你是要获得一个网页源文件吗?看看这行代码吧,MyStr:=form1.IdHTTP1.Get('http://www.163.com');
 
用 IdHTTP1 更慢
 
用HTTP从网站下载文件

方法一,用IdHttp:

procedure TForm1.Button1Click(Sender: TObject);
var
fs: TFileStream;
begin
fs := TFileStream.Create('c:/aaa.htm', fmCreate);
IdHTTP1.Get('http://www.abc.com/aaa.shtml', fs);
fs.Free;
end;





方法二:
uses
UrlMon
function DownloadFile(Source, Dest: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(source), PChar(Dest), 0, nil) = 0;
except
Result := False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if DownloadFile(edit1.Text, edit2.Text) then
ShowMessage('下载成功')
else ShowMessage('下载失败');
end;

其中:

edit1.Text为连接地址(如:http://community.csdn.net/Expert/TopicView3.asp?id=3482237)

edit2.Text为保存文件的路径及文件名(如:e:/123.htm)



也可以写成这样!!!

function GetHTMLFile(const URL , FileName : string) : HRESULT;

var

status : IBindStatusCallback ;

begin

result := UrlDownLoadToFile(nil, pChar(URL) ,pChar(FileName),0 ,Status);

end;



procedure TForm1.BitBtn1Click(Sender: TObject);

begin

if GetHTMLFile(edit1.Text, edit2.Text)>=0 then

ShowMessage('下载成功')

else ShowMessage('下载失败');

end;
 
为什么有的电脑快,有的电脑很慢

这跟配置,网速有问题

顺便问一下

如何用程序刷新一个网页,这个程序没有窗口
 
INTERNET_FLAG_RELOAD
 
用UrlDownLoadToFile



idhttp

GET
 

Similar threads

后退
顶部