| Autor |
Beitrag |
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mi 27.09.06 12:10
Hallo Leute,
ich möchte Daten an ein webservice (welche von einem Partnerunternehmen entwickelt wurde) übergeben. Diese liegen im XML-Format vor. Die Schnitstelle verlangt nun dass die Daten als "HTTP-RAW-POST-DATA" hinter dem Header angehängt werden. Also quasi als Parameter ohne Bezeichnung. Meine Frage ist nun, wie verwirkliche ich das am Geschicktesten in Delphi.
Die idHTTP Komponente scheint mir da nicht Flexibel genug zu sein oder ich habe nur noch nciht erkannt wie ich das mache.
Hat jemand eine Idee wie ich es am einfachsten löse?
Gruß
Klabautermann
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Mi 27.09.06 13:26
Hallo Björn,
ich kenn mich nicht damit aus, deshalb kann es sein, dass ich dir jetzt Blödsinn erzähle. Verzeih mir deshalb im Sinne des guten Willens:
Ich hab gerade im PSDK nachgeschaut und die Funktion HTTPADDREQUESTHEADERS gefunden. Auf den ersten Blick scheint es damit zu tun zu haben:
| PSDK hat folgendes geschrieben: | | Adds one or more HTTP request headers to the HTTP request handle. |
Vielleicht ist es ja genau dass, was du suchst...
Gruß Hape!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Klabautermann 
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mi 27.09.06 13:40
Hallo,
danke für den Tipp, aber dabei scheint es sich mir um eine .NET Funktion zu handeln, ich aberbeite aber an einem Win32 Programm.
Gruß
Klabautermann
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Mi 27.09.06 13:48
Klabautermann hat folgendes geschrieben: | Hallo,
danke für den Tipp, aber dabei scheint es sich mir um eine .NET Funktion zu handeln, ich aberbeite aber an einem Win32 Programm. |
Nein, wie kommst du drauf? Ist in Unit WinInet deklariert.
Gruß Hape!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mi 27.09.06 14:00
Hi Björn,
kannst du nicht über
Delphi-Quelltext 1:
| (TIdHTTP).Request.CustomHeaders.Add ('{...}'); |
Daten an den Header dran hängen?
Jedenfalls hat das bei mir vor ein paar Tagen funktioniert. Ich musste auch etwas spezielles an den Header dran hängen damit ich mit der API von Google (GDATA) arbeiten kann.
Gruß
Tino
|
|
Klabautermann 
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mi 27.09.06 14:08
Hallo Tino,
ich probiere das gleich mal aus, aber landen die Daten dabei nicht im Header? Ich muss sie ja hinter den Header bekommen.
Gruß
Klabautermann
|
|
Klabautermann 
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mi 27.09.06 14:41
Hallo Tino,
das hat leider nicht das Gewünschte ergebnis. Ich bekomme noch immer die albekannte Antwort: | Webservice hat folgendes geschrieben: | | no postdata available |
Gruß
Klabautermann
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Mi 27.09.06 15:32
Hallo,
hab dir nochmal ein Vorschlag:
| PSDK hat folgendes geschrieben: | lpOptional
Pointer to a buffer containing any optional data to be sent immediately after the request headers. This parameter is generally used for POST and PUT operations. The optional data can be the resource or information being posted to the server. This parameter can be NULL if there is no optional data to send. |
Die Funktion heisst HTTPSENDREQUEST in der Unit WinInet.
Gruß Hape!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Klabautermann 
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Do 28.09.06 08:43
Hi,
wulfskin hat folgendes geschrieben: | Klabautermann hat folgendes geschrieben: | Hallo,
danke für den Tipp, aber dabei scheint es sich mir um eine .NET Funktion zu handeln, ich aberbeite aber an einem Win32 Programm. | Nein, wie kommst du drauf? Ist in Unit WinInet deklariert. |
Drauf gekommen war ich den Blauen Header über der Funktionsbeschreibung, die gibt es zu lesen:
| msdn hat folgendes geschrieben: | Microsoft Windows CE .NET 4.2
HttpSendRequest |
Also sogar WinCE und .NET. Aber wenn du sagst es müsste auch in der normalen WinApi vorhanden sein werdse ich das mal ausprobieren, auch wenn ich auf einen schnuckeligen Indy-Weg (zwei bis dreizeiler  ) gehofft habe.
Gruß
Klabautermann
|
|
Klabautermann 
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Do 28.09.06 10:53
Hallo Leute,
ich kann entwarnung geben. Die lösung war sehr einfach und ich habe sie gestern nur beim ewigen Starren auf die idHTTP Komponente übersehen. Es gibt nämlich eine überladene Version von tidHttp.post welche anstelle der Stringlist mit Parametern einen Stream entgegennimmt. Wenn ich mein XML-Text in einen Stream lade und auf diese Art direkt übergebe klappt es ohne Probleme.
Danke für eure Hilfe
Klabautermann
|
|