Thema: Delphi Indy - Encoding Problem

Einzelnen Beitrag anzeigen

Benutzerbild von Minz3
Minz3

Registriert seit: 18. Jul 2019
Ort: Thüringen
48 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Indy - Encoding Problem

  Alt 29. Jan 2020, 13:06
Delphi-Version: 10.1 Berlin
Hey ho,

ich hatte mir das Indy 10 HTTP(S) Tutorial durchgelesen und bin auch so alles in allem gut damit klar gekommen.
An einer Stelle stolpere ich allerdings etwas und zwar bei der POST Methode.

Ich hab den Code aus dem Tutorial übernommen und etwas angepasst:
Delphi-Quellcode:
procedure TProgWebAppFrm.HTTPPost(Username : String; Password : String; Database : String);
var
  Params: TStringList;
  Enc: TEncoding;
  ResponseStr: string;

begin
  with TIdHTTP.Create(nil) do
  try
    Request.ContentType := 'application/x-www-form-urlencoded';

    Params := TStringList.Create;
    try
      with Params do
      begin
        Add('username=' + Username);
        Add('password=' + Password);
        Add('database=' + Database);
      end;

      // Request.CharSet vorher setzten: z.B: ISO-8859-1
      Enc := CharsetToEncoding(Request.CharSet);
      try
        // Daten senden
        ResponseStr := Post('https://nb1819157:5001/login?', Params, Enc);
      finally
        Enc.Free;
      end;

    finally
      Params.Free;
    end;
  finally
    Free;
  end;
end;
An folgender Stelle:
Enc := CharsetToEncoding(Request.CharSet); Kommt nun der Fehler, dass die Typen TEncoding und IIdTextEncoding nicht miteinander kompatibel sind. Das verstehe ich soweit auch, aber wie wurde das dann im Tutorial gemacht? Es schien ja so mal funktioniert zu haben. Wurden mit der Zeit Libraries angepasst so das die Inkompabilität jetzt zustande kommt?

Habt ihr da noch eine Idee? Bisher habe ich das dazu gefunden, weiß aber nicht genau was damit anzufangen. Gibt es inzwischen eine andere Methode, um das Encoding zu übermitteln?

Grüße!
Attention:
Brain.exe has stopped working. Reboot the system in 3... 2... 1... ... ... ... Attempt failed.
  Mit Zitat antworten Zitat