Ich habe ein Problem mit der JSON-Zeichenfolge, die ich bekomme, wenn eine POST-Anfrage erhalten. Derzeit ist dies die Art, wie ich es gerade lese:Meine POST-Anfrage auf TIdHttpServer enthält seltsame Zeichen, JSON-Zeichenfolge
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
Stream : TStream;
S : string;
begin
If ARequestInfo.Command = 'POST' then
begin
Stream := ARequestInfo.PostStream;
if assigned(Stream) then
begin
Stream.Position := 0;
S := UTF8ToAnsi(ReadStringFromStream(Stream));
end;
end;
end;
ich ReadStringFromStream()
allein versucht und mit UTF8ToAnsi()
und AnsiToUTF8()
, aber ich halte eine Zeichenfolge erhalten, die wie folgt aussieht:
‚[‘ # $ A # 9 '{' # $ A # 9 # 9 '"Test": "bb", "# $ A # 9 # 9" "Test": "aa"' # $ A # 9 '}' # $ A ']'
Ich weiß, es hat etwas mit Codierung zu tun, aber ich weiß nicht, wie es zu beheben ist.
Hallo, danke für deine Antwort. Es besagt, dass ReadStringFromStream mit diesen Parametern nicht überladen wird. Ich benutze Delphi Berlin 10.1 btw – John
eigentlich nach dem Versuch, den Stream auch mit den # Zeichen zu lesen, es funktioniert immer noch und löst keine Ausnahmen aus. – John
@John mein Schlechter, ich habe einen Parameter vergessen. Es ist jetzt behoben –