Ich möchte einige Dinge über SOAP abfragen, indem ich WSDL mit NuSOAP erzeuge.
Ich weiß, dass es viele Fragen bezüglich des Themas gibt, aber ich hatte keinen Erfolg, die Codes an mein spezielles Problem anzupassen.
Es ist mir gelungen, WSDL-Code zu generieren, der nur ein Array von Strukturen zurückgibt (assoziatives Array), ABER Ich möchte lieber ein Objekt (struct) zurückgeben, das eine Integer-Variable, eine String-Variable UND ein Array enthält Strukturen .
Also, das ist der Code, der für die Rückgabe eines Arrays von Strukturen gilt:
In einer C # -Konsolenanwendung, nach dem Hinzufügen einer Web-Referenz namens "StuffService" mit der "? wsdl" an die entsprechende URL, wo diese PHP-Datei gefunden werden kann, funktioniert dieser Code, ich kann die Stuff_array-Werte wie abfragen das:
%Vor%Das ist cool, ABER ich möchte diesen Code entwickeln, um ein Objekt wie dieses zurückzugeben:
%Vor% Was ist der entsprechende NuSOAP-Code dafür?
Vielen Dank!! :)
Ich hoffe, ich könnte klarstellen, was ich erreichen möchte: eine Struktur zurückgeben, die ein int, eine Zeichenfolge und ein Array von Strukturen enthält, aber nicht wissen, wie man den entsprechenden NuSOAP-Code dafür schreibt. Auf diese Weise konnte ich zuerst den responseCode überprüfen und mit den entsprechenden Fehlermeldungen umgehen ODER das stuffArray ausgeben.
Nach langen Stunden des Experimentierens fand ich die Lösung!
Also geben wir eine Struktur zurück, die drei Member enthält - einen int responseCode, einen String responseMessage und ein Array von Structs namens stuffArray im Beispiel - via SOAP mit NuSOAP (PHP) sieht so aus, ich gebe einige Kommentare in den Code ein mache es eindeutiger:
%Vor% Geben Sie dieser Datei einen Namen, zum Beispiel getStuffComplex.php
, und kopieren Sie diese Datei dann irgendwo auf Ihren Webserver, und merken Sie sich ihren Pfad.
Zum Beispiel ist ein Domainname auf meinem lokalen Webserver http://soap.local
, und der oben erwähnte PHP-Code kann unter http://soap.local/getStuffComplex.php
erreicht werden.
Nehmen wir an, Sie möchten die Funktion getStuffs () in einem C # -Code über einen SOAP-Client von einer Konsolenanwendung unter Visual Studio 2010 aufrufen. In diesem Fall müssen Sie die folgenden Schritte ausführen:
http://soap.local/getStuffComplex.php?wsdl
Der C # -Code:
%Vor%Die Ausgabe:
%Vor%Ich hoffe, das hilft jemandem, der Probleme damit hatte, PHP und SOAP und .NET zusammenzubringen.
(Hinweis: Achten Sie bei der Verwendung von Akzenten oder Sonderzeichen auf die Zeichencodierung. Standardmäßig kann ANSI verwendet werden (Zeichenkodierungen müssen jedoch identisch sein).)