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": ""}');