Я написал функцию Delphi, которая извлекает веб-страницу из другого приложения.URLOpenBlockingStream дает ту же страницу
Это прекрасно работает, когда я использую файл для хранения информации с помощью
Результат: = URLDownloadToFile (ноль, PChar (XmlUrl), PChar (XmlFileName_), 0, ноль);
Когда я использую URLOpenBlocking-stream, я получаю правильную информацию, но во второй раз, когда я делаю запрос на веб-сервер, я получаю старую страницу, хотя страница была изменена.
Есть ли у кого-нибудь идеи, что может быть причиной?
function MyDownloadToBlockingSteam(URL : String; Var bsXmlStr : AnsiString): LongInt;
var
ppStream : ActiveX.IStream;
statstg : TStatStg;
dwRead : Integer;
begin
Result := 1;
bsXmlStr := '';
If (URLOpenBlockingStream(nil, PChar(URL), ppStream, 0, nil) = S_OK) then
Begin
// Resource protection
try
if (ppStream.Stat(statstg, STATFLAG_NONAME) = S_OK) then // Get the stat from the IStream interface
begin
if (statstg.cbSize > 0) then // Make sure size is greater than zero
begin
SetLength (bsXMLStr, statstg.cbSize+1);
Result := ppStream.Read(@bsXMLStr[1], statstg.cbSize, @dwRead); // Read from the stream
end;
end;
finally
ppStream:=nil; // Release the IStream interface
end;
end;//If ..
end;
Танки много, это идеальное решение. Прежде всего это работает. Во-вторых, это намного более гибко. Иаков – Jacobvst