Function FileComm.GetWebPage(const Url: string) : string; (*获取网页源文件*)
var
Session, HttpFile : HINTERNET;
szSizeBuffer : Pointer;
dwLengthSizeBuffer : DWord;
dwReserved : DWord;
dwFileSize : DWord;
dwBytesRead : DWord;
Contents : PChar;
begin
Session := InternetOpen('',0,niL,niL,0);
HttpFile := InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
dwLengthSizeBuffer := 1024;
HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved) ; GetMem(Contents, dwFileSize);
InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead) ; InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
Result := UTF8Decode(StrPas(Contents));
FreeMem(Contents);
end;函数代码如上。
问题是,不知道如何设置超时时间,不设置的话,当请求的网址不存在,程序就死在那不动了。这个函数有时候读出来的源文件后面会加上一些乱码的字符,有办法解决吗?或者谁有更好的读取源文件的函数。借俺用下。
解决方案 »
- delphi 如何通过 button 输入密码
- 用idhttp.get时怎样把保存在IdCookieManager1里的cookie带上,这样就能正确访问网页了!前辈指点!!
- 如何将规定了格式的文件导入到ORACLE的相应数据表格中去啊!
- 控制powerpoint的问题?UP有分~不够再加罗
- 我如何让TEDIT等编辑控件在限制其编辑功能下仍可进行点选,复制等操作呢?
- 关于MDIFORM里放IMAGE1问题,急,急 ,急,拜谢了,分不够在给,求救啊
- 高兴但彷徨中,跳槽后的感觉?
- 怎么在delphi中使flash的控件在播放的时候全屏呢?
- DELPHI 5 VS DELPHI 6.0!!DELPHI 6 占用了我40M 内存!简直要吃人!!
- 有多个radiogroup时,如何判断鼠标单击了哪个radiogroup?
- 求解!!关于转换的问题!
- 怎样在Delphi中使用MSCOMM发送二进制数据?
IdHttp.ReadTimeout :=20000;
IdHttp.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705 )'; try
GetRemoteStr := IdHttp.Get(Url);
except
on E: Exception do
begin
if Pos('Not Found',E.Message)>0 then
begin
GetRemoteStr := 'error:not found';
end
else
GetRemoteStr := 'error:'+ E.Message; end;
end;
IdHttp.Destroy;