获取网页源码的问题
以下的代码为什么加上带有注释的两句就会有时候出问题,并且不能用TRY EXCEPT END
否则有时候查询网页会返回空
function 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;
try //
GetMem(szSizeBuffer, dwLengthSizeBuffer); //给szsizebuffer动态申请1024内存空间
GetMem(Contents, dwFileSize);
HttpQueryInfo(HttpFile, 5, szSizeBuffer, dwLengthSizeBuffer, dwReserved);
GetMem(Contents, dwFileSize);
InternetReadFile(HttpFile, Contents, dwFileSize, dwBytesRead);
InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
Result := StrPas(Contents);
finally//
FreeMem(szSizeBuffer); //释放,object高手突破说的话:借债还钱,天经地义
FreeMem(Contents);
end;//
end;
否则有时候查询网页会返回空
function 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;
try //
GetMem(szSizeBuffer, dwLengthSizeBuffer); //给szsizebuffer动态申请1024内存空间
GetMem(Contents, dwFileSize);
HttpQueryInfo(HttpFile, 5, szSizeBuffer, dwLengthSizeBuffer, dwReserved);
GetMem(Contents, dwFileSize);
InternetReadFile(HttpFile, Contents, dwFileSize, dwBytesRead);
InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
Result := StrPas(Contents);
finally//
FreeMem(szSizeBuffer); //释放,object高手突破说的话:借债还钱,天经地义
FreeMem(Contents);
end;//
end;
...全文


网络通信/分布式开发
