Hallo Zusammen,
das Problem vorab: beim Zuweisen von LResponse
entsteht ein Memory Leak.
Ich habe Schrittweise alles auskommentiert und die Stelle lokalisieren können die dafür verantwortlich ist. Es ist die Zuweisung von LResponse
Delphi-Quellcode:
procedure TdmCleverReach.RefreshToken;
var LResponse: TJsonObject;
LResponseStream: TBytesStream;
FormData: TidMultiPartFormDataStream;
begin
Formdata := TIdMultiPartFormDataStream.Create;
Formdata.AddFormField('grant_type', 'refresh_token');
Formdata.AddFormField('refresh_token', INIRefreshToken);
Formdata.AddFormField('client_id', INIClientID);
Formdata.AddFormField('client_secret', INIClientSecret);
FormData.Position := 0;
LResponseStream := TBytesStream.Create;
LResponse := TJsonObject.Create;
Die hier erzeugte Instanz wird nie verwendet und auch nie freigegeben.
Weiter unten überrschreibt dein Kode
LResponse := TJsonObject.ParseJSONValue(LResponseStream.Bytes, 0, LResponseStream.Size) as TJsonObject;
das Objekt.