Autor Beitrag
mantao.russ
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 21.02.07 13:33 
Hallo,

leider habe ich noch nicht so viele Erfahrungen mit Webservices. Ich versuche eine komplexere Struktur (mehere Arrays) als Parameter des Webservices zu verschicken. Auf der Serverseite kommen jedoch nicht die Daten an. Es kommt nur:

<IM_TRIM_DATA xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="NS2:ZGS_TS[1]">
<item href="#1" />
</IM_TRIM_DATA>

Kann man auf der Clientseite sehen wie der komplete XML-Stream aussieht? Gibt es zu der THTTPRIO-Komponente eine entspechende Funktion/Eigenschaft (habe leider nicht gefunden)?

Danke für eine Antwort.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 21.02.07 21:38 
2 Dinge erstmal so:

Du kannst mit Netzwerk-Programmen wie Wireshark (ehemals Ethereal) den Netzwerk-Verkehr aufzeichnen ... Damit erhälst Du u.a. auch den XML-Stream als Text.

Ansonsten wäre ein Ausschnitt des Client-Sources zum Aufbau der Struktur interessant, denn ich vermute mal, dass da irgendwas fehlt oder schiefläuft.

MfG,
BenBE.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
mantao.russ Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 22.02.07 09:57 
Danke für die Antwort!

Ich war vielleicht ein bißchen knapp mit dem Code.

Beim Aufruf des Webservice (über die Komponente THTTPRIO) übergebe ich ein
array of ZGS_TS.
ZGS_TS ist eine geerbte Klasse von TRemotable.

Beim Aufruf des Webservice gehe ich viel folgt vor:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
                ServiceAdapter := THTTPRIO.Create( nil );
                ServiceAdapter.URL := defURL;
                ServiceAdapter.Converter.Options := [
                             soSendUntyped,
                             soSendMultiRefArray,
                             soTryAllSchema,
                             soRootRefNodesToBody,
                             soUTF8InHeader,
                             soCacheMimeResponse,
                             soUTF8EncodeXML
                  ];  
                // sevice ist eine geerbte Klasse von interface(IInvokable) 
                sevice := ServiceAdapter as Z_TRIM_INBOUND;

                // so und jetzt den Webservice aufrufen! (EX_TRIM_DATA = array of ZGS_TS)
                sevice.Z_TRIM_INBOUND( EX_TRIM_DATA );


Jetzt würde ich mir gerne vor dem Aufruf von "sevice.Z_TRIM_INBOUND( EX_TRIM_DATA )" den gesamten XML-Stream ansehen. Habe aber noch keine Lösung gefunden?

Moderiert von user profile iconUGrohne: Delphi-Tags hinzugefügt
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 22.02.07 21:13 
Ich denke, dir könnte u.U. folgender Link einige Anregungen geben, da er in etwa das abdeckt, was Du auch vor hast: www.drbob42.com/kylix/BizSnap0.htm
Der Link ist zwar für Kylix geschrieben, sollte aber ähnlich (wenn nicht sogar gleich) auch für Windows\Delphi funktionieren. Ansonsten solltest Du (wenn möglich) mal einen Blick in die Sources der THTTPRIO-Komponente werfen - das ist auch meist relativ ergiebig ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
mantao.russ Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 23.02.07 15:57 
Ich habe die Übertragung mit Ethereal mitgeschnitten und bin dadurch an meine Informationen gekommen.

Danke nocheinmal für den Tipp.