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!