Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.646 Beiträge
Delphi 12 Athens
|
AW: Prüfen ob Datei online
23. Mai 2012, 11:41
Meine Variante sieht so ähnlich aus, bietet aber auch einen TimeOut an:
Delphi-Quellcode:
function IsUrlValid(const sUrl: string; CheckTimeout: DWORD = 3000): Boolean;
var
hInet, hConnect: HINTERNET;
StatusCode, dummy, bufLen, Option: DWORD;
begin
Result := False;
hInet := InternetOpen(PChar(Application.Title),
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, nil, nil, 0);
if Assigned(hInet) then
try
Option := CheckTimeout;
InternetSetOption(hInet, INTERNET_OPTION_CONNECT_TIMEOUT, @Option,
SizeOf(Option));
InternetSetOption(hInet, INTERNET_OPTION_RECEIVE_TIMEOUT, @Option,
SizeOf(Option));
hConnect := InternetOpenUrl(hInet, PChar(trim(sUrl)), nil, 0,
INTERNET_FLAG_NO_UI, 0);
if Assigned(hConnect) then
try
dummy := 0;
bufLen := SizeOf(StatusCode);
if HttpQueryInfo(hConnect, HTTP_QUERY_STATUS_CODE or
HTTP_QUERY_FLAG_NUMBER, @StatusCode, bufLen, dummy) then
// Statuscode 200 = alles OK
Result := StatusCode = 200;
finally
InternetCloseHandle(hConnect);
end;
finally
InternetCloseHandle(hInet);
end;
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|
|
Zitat
|