Einzelnen Beitrag anzeigen

Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
744 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: Indy HTTPClient Post umlaute

  Alt 17. Apr 2024, 17:05
Delphi-Quellcode:
procedure libretranslate_Indy;
var
    json : rawbytestring;
    line : WideString;
    Stream: TStream;
begin
    Stream := TMemoryStream.Create;
   try
    json := UTF8Encode('{ "q": "anöa","source": "auto", "target": "en", "api_key": ""}');
    Stream.WriteBuffer(Pointer(json)^, Length(json));
    Stream.Position := 0;
    form103.idhttp1.Request.ContentType := 'application/json';
    line := UTF8Decode(form103.idhttp1.Post('http://127.0.0.1:5000/translate',stream));
  // line:=form103.idhttp1.Post('http://httpbin.org/anything',pdata);
    Showmessage( line );
   finally
    stream.Free;
   end;
end;
jaenicke ich habe libretranslate lokal installiert (und Fiddler fürs Vergleichen von Header und Daten und...) und da führt dein Code beim "Post" zu einem Bad Request oder einem Method not allowed. Eventuell mache ich was falsch. - Ich glaube aber, dass der Code oben funktionieren sollte. Bei mir werden die Sonderzeichen im Response als Sonderzeichen angezeigt.

Sogar das funktioniert: json := UTF8Encode('{ "q": "أرى الكلب الأزرق الصغير خلف المنزل الأصفر على النهر الأحمر.","source": "auto", "target": "en", "api_key": ""}');
Michael Gasser

Geändert von Michael II (18. Apr 2024 um 00:51 Uhr)
  Mit Zitat antworten Zitat