![]() |
AW: Indy HTTPClient Post umlaute
Das ist LibreTranslate. Also das muss irgendwie gehen. Leider finde ich nichts darüber oder wieder zu doof zum suchen.
|
AW: Indy HTTPClient Post umlaute
Das sendet er bei UTF-8. Es kommt zwar ein 200 zurück aber halt L??nge
Code:
POST /translate HTTP/1.0
Connection: keep-alive Content-Encoding: UTF-8 Content-Type: application/json Content-Length: 105 Host: translate.lan:5000 Accept: application/json User-Agent: 'User-Agent', 'Mozilla/5.0 { "q": "L??nge 8,5 cm","source": "de", "target": "en", "api_key": "#######"}HTTP/1.0 200 OK |
AW: Indy HTTPClient Post umlaute
Probier doch mal mit einem separaten API client, z.B.
![]() |
AW: Indy HTTPClient Post umlaute
Mein letzter Post (hoffe ich). Mit Overbyte geht es auf anhieb. UTF8Encode() und absenden. Klappt.
Ob Indy da eventuell einen "kleinen" Fehler hat? |
AW: Indy HTTPClient Post umlaute
Mein persönlicher Geschmack war Indy nie. Ich hatte sehr mit denen gekämpft, als ich mit TCP/IP anfing...und mit den ICS hat es auf Anhieb geklappt. Die sind auch irgendwie mehr "delphisch" (vergleiche mit Pythons "pythonic").
|
AW: Indy HTTPClient Post umlaute
Zitat:
Delphi-Quellcode:
Da du keinen Quelltext gezeigt hast, kann ich auch nicht beurteilen, was bei dir falsch läuft.
var
Http: TIdHTTP; Data: TStringList; begin Http := TIdHTTP.Create(Self); try Data := TStringList.Create; try Data.Add('{ "q": "Länge 8,5 cm","source": "de", "target": "en", "api_key": "#####"}'); ShowMessage(Http.Post('http://www.familie-jaenicke.de/b.php', Data, IndyTextEncoding_UTF8)); finally Data.Free; end; finally Http.Free; end; end; |
AW: Indy HTTPClient Post umlaute
So wie ich gelesen habe, bin ich nicht der einzige mit diesem Fehler. Du hast eine andere Indy Version als ich. z.b. bei Delphi 2009 soll der Bug noch drin gewesen sein. Quelle der Info:
![]() Aber mit OverByte ging es sofort. Deswegen....... |
AW: Indy HTTPClient Post umlaute
Zitat:
Delphi-Quellcode:
Wie schon geschrieben: Ohne deinen Code kann man dir auch nur sehr schlecht helfen. Darum ist es immer am besten ein Beispielprojekt oder Beispielcode zu zeigen, mit dem du es versucht hast...
var
Http: TIdHTTP; Data: TStringList; begin Http := TIdHTTP.Create(Self); try Data := TStringList.Create; try Data.Add('{ "q": "Länge 8,5 cm","source": "de", "target": "en", "api_key": "#####"}'); ShowMessage(Http.Post('http://www.familie-jaenicke.de/b.php', Data)); finally Data.Free; end; finally Http.Free; end; end; ICS ist eine gute Wahl, aber mit Indy geht es auch. |
AW: Indy HTTPClient Post umlaute
Zitat:
Dein Code läuft mit deiner URL/deinem PHP Skript super und ä kommt an. Wenn man aber den Code zum Beispiel auf 'http://httpbin.org/post' loslässt, dann gibt der Server ä Unicode codiert zurück: "{ \"q\": \"L\u00e4nge 8,5 cm\",\"source\": \"de\", |
AW: Indy HTTPClient Post umlaute
Eben das ist der Punkt. Wenn man nicht weiß, wie der Quelltext aussieht, kann man nicht sagen, woran es liegt. Wenn ich ein konkretes Beispiel habe, kann ich sehen oder auch testen was raus geht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz