AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy Http.Post Delphi 2007 -> Delphi 2010 Umlaute

Indy Http.Post Delphi 2007 -> Delphi 2010 Umlaute

Offene Frage von "geskill"
Ein Thema von Schorschi5566 · begonnen am 9. Nov 2010 · letzter Beitrag vom 22. Feb 2011
Antwort Antwort
Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Indy Http.Post Delphi 2007 -> Delphi 2010 Umlaute

  Alt 9. Nov 2010, 10:15
Hallo DP,

ich habe schon etliche Posts zum Thema durchsucht, komme aber zu keiner Lösung.

Folgende Situation:
Auf einem Forum editiere ich per Indy-Http.Post meine Postings. Dabei wird der alte Inhalt mit Get ausgelesen, aktualisiert und wieder gepostet.

Beim Posten wird wohl einmal zuviel nach UTF8 konvertiert, weshalb ein Ä beispielsweise zu Ä auf dem Forum wird.

Die per Get erhaltenen Inhalte sind noch richtig.

Mit Delphi 2007 hat das Ganze problemlos funktioniert und an der Serverseite hat sich nichts verändert.

Folgender Code wurde in der Delphi 2007er-Version verwendet.

Delphi-Quellcode:
Strings := TStringList.Create;
try
  Strings.Add('send=send');
  Strings.Add('sid=' + sSid);
  sPostNr := '353453';
  Strings.Add('postid=' + sPostNr);
  Strings.Add('submit=Beitrag speichern');
  sMessage := Memo3.Text;
  Strings.Add('message=' + sMessage);
  IdHTTP1.HandleRedirects := True;
  try
    Memo2.text := idHTTP1.Post('http://www.testsite.de//editpost.php', Strings);
  except
    showmessage('Fehler beim Posten');
  end;
finally
  Strings.Free;
end;

Die Seiten des Forums sind so codiert:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Schalte ich hoForceEncodeParams aus, wird gar nichts mehr gepostet. sMessage wurde schon als AnsiString und String probiert. Mit Contenttype und Charset habe ich auch schon "rumgespielt", was aber auch keinen Erfolg brachte.

Hat jemand einen Tipp, wie man das unter Delphi 2010 zum Laufen bekommt?


Viele Grüße,
Uwe
Uwe
"Real programmers can write assembly code in any language." - Larry Wall
Delphi programming rocks
  Mit Zitat antworten Zitat
Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Indy Http.Post Delphi 2007 -> Delphi 2010 Umlaute

  Alt 12. Nov 2010, 19:21
Kann mir wirklich niemand auf die Spur helfen?

Welche Eigenschaften von TIdHttp sind für Post überhaupt relevant?

Oder funktioniert der Ansatz mit der StringList gar nicht mehr unter D2010 mit Umlauten? Oder sollte man die Indies updaten? Fragen über Fragen.

Hat jemand sowas schonmal mit D2010 hinbekommen?

Wäre sehr dankbar für einige Denkanstösse.


Grüße,
Uwe
Uwe
"Real programmers can write assembly code in any language." - Larry Wall
Delphi programming rocks
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Indy Http.Post Delphi 2007 -> Delphi 2010 Umlaute

  Alt 22. Feb 2011, 16:29
Ist schon etwas älter aber ich bin gerade durch die Suche drauf gestoßen.

Wenn die Webseite in ISO-8859-1 kodiert ist:
Delphi-Quellcode:
Params := TStringStream.Create('');
try
  Params.WriteString('name=' + HTTPEncode('value') + '&');

  // [...]
finally
  Params.Free;
end;
Wenn die Webseite in UTF-8 kodiert ist:
Delphi-Quellcode:
Params := TStringStream.Create('', CP_UTF8);
try
  Params.WriteString('name=' + 'value' + '&'); // ggf. SmallHTTPEncode()

  // [...]
finally
  Params.Free;
end;

// [...]

  function SmallHTTPEncode(AStr: string): string;
  begin
    result := StringReplace(AStr, '&', '%26', [rfReplaceAll]);
  end;
Damit fahre ich ATM ganz gut.

Und dann gibt es noch den Weg über TIdMultiPartFormDataStream, dass würde aber hier den Rahmen sprengen.
Sebastian
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:58 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