Ist das eigentlich gewollt, dass die Instanz von THttpRequest niemals freigegeben wird?
Wäre da nicht ein try finally angebracht?
Delphi-Quellcode:
function TFritzbox.GetLogOut: Boolean;
{*******************************************************************************
* -8- Aus der Fritzbox ausloggen.
}
var
HTTPReq : THTTPRequest;
begin
{
* Wenn noch nicht eingeloggt ...
}
if GetIsLoggedIn
then
begin
{
* Abfrage mit Senden des Passwortes.
}
HTTPReq := THTTPRequest.Create;
try
HTTPReq.Method := '
POST';
HTTPReq.Accept := '
text/html';
HTTPReq.ContentType := '
application/x-www-form-urlencoded';
HTTPReq.URL := FRITZBOXurl(FRITZBOX_PATH_WEBCM);
HTTPReq.SendStream := Format(FRITZBOX_MENU_LOGOUT, [FSession.SID]);
{
* Ausführen.
}
HTTPReq.Execute;
{
* Eine Überprüfung der Antwort ist nicht notwendig, da keine neue SessionID
* übernommen werden muss. Siehe nächsten Kommentar.
}
finally
HTTPReq.Free;
end;
end;
{
* Es wird geprüft, ob die SessionID noch gültig und der Zugriff auf die
* Fritzbox möglich ist.
}
Result := GetIsLoggedIn;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)