Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

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

AW: idHTTP.post mag die klammern nicht....

  Alt 20. Jan 2013, 20:52
Hallo peberhardt,
also du erstellst deine XML "händisch", das mag zwar mit dem geschulten Auge gut funktionieren, aber ich rate dringendst - auch wegen der Wiederverwendbarkeit davon ab. Dazu gibt es das wunderbare IXMLDocument aus der XMLIntf Datei. Aber dies ist nicht das Kernthema.

Außerdem benutzt du eine veraltete Indy Version (aktuell ist >= 10.5.9).

Mit einer TStringList zu arbeiten ist der richtige falsche Ansatz (name=value Prinzip). Da du quasi nur "blob" Daten sendest empfiehlt sich dazu der TStringStream. Die Daten liegen ja im UTF-8 CharSet vor, deshalb muss dieser auch damit angelegt werden:
Delphi-Quellcode:
request_data := TStringStream.Create('', CP_UTF8);
// in request.Text befindet sich die komplette XML Datei, ich rate dir aber dringendst dies anzupassen
request_data.WriteString(request.Text);
Des weiteren wird der Datentyp von der response Variable in einen String umgewandelt.
Delphi-Quellcode:
//ich bin mir mit dem ContentType hier nicht sicher, aber es geht in die Richtung
IDHttp1.Request.ContentType := 'application/atom+xml';

// Statt des ContentEncoding's wird der CharSet definiert.
IDHttp1.Request.CharSet := 'UTF-8';

response := IDHttp1.Post('https://gateway.autodns.com', request_data);
Damit sollte es funktionieren und im response: String ist dann der POST-response im richtigen "Format".

Grüße

PS: Gerne kannst du dies alles nochmal in meinem Tutorial nachlesen: http://www.delphipraxis.net/160152-i...protokoll.html. Dort im Punkt 1 Daten senden der 2te Codeblock wird gezeigt, wie es mit Google-Blogger funktioniert - also ähnlich deinem Vorhaben, wenn man es abstrakt sieht.
Sebastian
  Mit Zitat antworten Zitat