AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy HTTPClient Post umlaute
Thema durchsuchen
Ansicht
Themen-Optionen

Indy HTTPClient Post umlaute

Ein Thema von DelTurbo · begonnen am 16. Apr 2024 · letzter Beitrag vom 21. Apr 2024
Antwort Antwort
Seite 4 von 4   « Erste     234   
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#31

AW: Indy HTTPClient Post umlaute

  Alt 21. Apr 2024, 11:54
Huhu,
das hat dir aber keine ruhe gelassen, gell...
Da kenne ich noch einen der weiter gesucht hat. Er kam auf die gleiche Lösung.

Aber wie gesagt ich habe mich entschlossen ICS zu nehmen, zumal die das "neue" SSL unterstützen, deswegen hatte ich da nicht weitergesucht.
Ich dachte ja erst das ich einen "dummen" Fehler mache. Deswegen hatte nach viel googlen gefragt was ich schon wieder falsch mache.

Einen schönen Sonntag wünsche ich dir...
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Michael II
Online

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

AW: Indy HTTPClient Post umlaute

  Alt 21. Apr 2024, 12:05
Wenn du Streams verwendest, funktioniert es mit Indy und ICS identisch.
Schön bestätigst du damit #26 .

Kürzeste Änderung (ohne eine Zeile weiteren Code) wäre gewesen:
Wenn idhttp.post('http://127.0.0.1:5000/translate',hs); nicht funktioniert, dann streame
idhttp.post('http://127.0.0.1:5000/translate',TStringStream.Create(hs.Text, TEncoding.UTF8)));
Bloss frage ich mich bei solchen Konstrukten jeweils immer "wer räumt danach auf" .

Wenn man bei Indy Post mit TStrings verwendet:
Auch Indy verwendet Streams, macht aber dies:
mit Option hoForceEncodePar erwartet Indy, dass man http://www.abc.com/details?par1=val1&par2=val2... postet. Vor dem Streamen werden die Strings durch & getrennt, mit der beim Post angegebenen Kodierung kodiert (wenn keine angegeben verwenden neuere Indys utf8) und dann URL encodiert. Ich nehme an, das ist by design.
ohne Option hoForceEncodePar gibt leider Indy die beim Post angegebene Kodierung nicht weiter. (hier glaube ich eher an einen Bug als an by design) Indy prüft zwar dann, ob eine Kodierung ausgewählt worden ist, diese ist aber halt dann immer nil. Indy prüft bei nil auf GIdDefaultTextEncoding und wählt diese. D.h. wenn man vor dem Post GIdDefaultTextEncoding := encUTF8; setzt, funktioniert idhttp.post('http://127.0.0.1:5000/translate',hs);


jeanicke, ich habe noch eine Frage zu deinem #22. Du verwendest dort UTF8Encode() und fügst den encodierten string einer TStringlist hinzu:
Delphi-Quellcode:
pdata:=TStringList.Create;
    for i:=0 to memoPost.Lines.Count-1 do begin
      pdata.Add(UTF8Encode(..));
Ist das ein neues Feature von Delphi 12? Ich bin immer noch auf dem Stand 11.2 (weil Delphi 11.2 bis auf wenige Macken so super läuft). Und in 11.2 kann TStringList keine utf8strings aufnehmen.

D.h. bei meinem Delphi ist, wenn u : utf8string; s : string; nach u := s, s := u in s wieder ein string drin. Oder anders geschrieben: In meinem Delphi ist pdata.Add(UTFEncode(s)) gleichwertig mit pdata.Add(s). Kann Delphi 12 hier mehr?
Michael Gasser

Geändert von Michael II (21. Apr 2024 um 12:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#33

AW: Indy HTTPClient Post umlaute

  Alt 21. Apr 2024, 13:01
Wenn du Streams verwendest, funktioniert es mit Indy und ICS identisch.
Schön bestätigst du damit #26 .
Nur dass du den Code offensichtlich nur unter einem neueren Delphi getestet hast. Der funktioniert mit Delphi 2007, um das es hier ging, nicht. Das wollte ich daher kurz ausprobieren, aber auch nicht per IFDEF die neue Funktionalität des TStringStreams verwenden, wenn es so in allen Versionen geht.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz