Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
Delphi 10.4 Sydney
|
AW: URL checken
24. Aug 2013, 15:18
Also irgendwas stimmt da nicht.
Ich bekomme immer ein "OK" auch wenn die URL ungültig ist:
Delphi-Quellcode:
function urlcheck(const sUrl: string; CheckTimeout: DWORD = 3000): DWORD;
var
hInet, hConnect: HINTERNET;
StatusCode, dummy, bufLen, Option: DWORD;
begin
Result := 0;
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
Result := StatusCode;
finally
InternetCloseHandle(hConnect);
end;
finally
InternetCloseHandle(hInet);
end;
end;
function htcodes(mycode: Integer): string;
begin
case mycode of
200: Result := 'OK';
301: Result := 'Adresse umgezogen';
400: Result := 'Anfrage fehlerhaft';
401: Result := 'keine Authentifizierung';
403: Result := 'keine Berechtigung';
404: Result := 'Keine Antwort';
408: Result := 'Timeout';
else
Result := 'unbekannter Fehler';
end;
end;
Aufruf:
Delphi-Quellcode:
procedure Tmain.testbuttonClick(Sender: TObject);
var stc: Integer;
begin
stc:=urlcheck(urltext.Text);
Showmessage(htcodes(stc));
end;
Theoretisch gibt es also immer eine 200 zurück.
Mache ich was falsch?
Peter +++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
|
|
Zitat
|