Ik heb een SOAP service draaien door middel van PHP (NuSOAP). Nu probeer ik deze service aan te spreken door middel van een C# windows form in Visual Studio Express 2013. Ik krijg echter steeds deze foutmelding;
Dit is het PHP script. getRoomsInfo geeft een Array terug en ik denk dat daar het probleem zit. Wanneer ik hier een string van maak krijg ik geen foutmelding meer, maar dan kan ik ook niks meer met het resultaat doen in C#.
Ik heb SOAPUI even gebruikt om te kijken wat deze functie nou precies terug geeft, en dit is het resultaat;
code:
1
2
| An unhandled exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dll Additional information: Error in deserializing body of reply message for operation 'getRoomsInfo'. |
Dit is het PHP script. getRoomsInfo geeft een Array terug en ik denk dat daar het probleem zit. Wanneer ik hier een string van maak krijg ik geen foutmelding meer, maar dan kan ik ook niks meer met het resultaat doen in C#.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| require('lib/nusoap.php'); require('functions.php'); $server = new nusoap_server(); $server->configureWSDL("home_auto"); $server->register( "getRoomsInfo", //name of methdod array(), //input array("result"=>"xsd:Array") //output ); $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); |
Ik heb SOAPUI even gebruikt om te kijken wat deze functie nou precies terug geeft, en dit is het resultaat;
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:getRoomsInfoResponse xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"> <result xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="unnamed_struct_use_soapval[4]"> <item> <name xsi:type="xsd:string">room 1</name> <__numeric_0 xsi:type="xsd:string">room 1</__numeric_0> <door xsi:type="xsd:string">door_closed.png</door> <__numeric_1 xsi:type="xsd:string">door_closed.png</__numeric_1> <light xsi:type="xsd:string">light_off.png</light> <__numeric_2 xsi:type="xsd:string">light_off.png</__numeric_2> </item> <item> <name xsi:type="xsd:string">room 2</name> <__numeric_0 xsi:type="xsd:string">room 2</__numeric_0> <door xsi:type="xsd:string">door_closed.png</door> <__numeric_1 xsi:type="xsd:string">door_closed.png</__numeric_1> <light xsi:type="xsd:string">light_off.png</light> <__numeric_2 xsi:type="xsd:string">light_off.png</__numeric_2> </item> <item> <name xsi:type="xsd:string">room 3</name> <__numeric_0 xsi:type="xsd:string">room 3</__numeric_0> <door xsi:type="xsd:string">door_closed.png</door> <__numeric_1 xsi:type="xsd:string">door_closed.png</__numeric_1> <light xsi:type="xsd:string">light_on.png</light> <__numeric_2 xsi:type="xsd:string">light_on.png</__numeric_2> </item> <item> <name xsi:type="xsd:string">room 4</name> <__numeric_0 xsi:type="xsd:string">room 4</__numeric_0> <door xsi:type="xsd:string">door_closed.png</door> <__numeric_1 xsi:type="xsd:string">door_closed.png</__numeric_1> <light xsi:type="xsd:string">light_off.png</light> <__numeric_2 xsi:type="xsd:string">light_off.png</__numeric_2> </item> </result> </ns1:getRoomsInfoResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |