Bonjour à tous, j'ai commencé à créer un web service mais je bloque quand je veux envoyé un array a mon client. Je m'explique: je possède un serveur php ainsi qu'une class php qui me permet de faire des calculs (pour le moment) tous cela fonctionne très bien jusqu'à maintenant. Pour le suite j'aimerais créer un tableau en php ayant des chose en dur dedans et les envoyé a mon client c# mais je n'y arrive pas le problème viens de mon fichier .wsdl mais je ne trouve pas comment je pourrais faire pouvez vous m'aidez svp je vous en remercie d'avance.


Mon serveur ressemble à cela:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
 
require 'Christophe.class.php';
 
//première étape : désactiver le cache lors de la phase de test
 
ini_set("soap.wsdl_cache_enabled", "0");
 
$wsdl	= 'croz.wsdl';
//Création du serveur SOAP avec le fichier WSDL
 
$server	= new SoapServer($wsdl);
//Ajout de la classe Christophe dans les éléments proposés par le WebService
$server->setClass('Christophe');
 
//l'utilisation du WebService se fera toujours par la méthode POST
if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
	$server->handle();
}
else 
{
	echo '<h4>Ce serveur SOAP peut gérer les fonctions suivantes : </h4><ul>';
	$functions = $server->getFunctions();
	foreach($functions as $func)
		echo '<li>'.$func.'</li>';
 
	echo '</ul>';
}
?>

ensuite ma class appelé par le serveur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
 
class Christophe {
 
    public function Add($a, $b) {
        return $a + $b;
    }
 
    public function Substract($a, $b) {
        return $a - $b;
    }
 
    public function Multiplier($a, $b) {
        return $a * $b;
 
        function Tab($tab) {
            return $tab = array(
                'langue' => 'English',
                'autreLangue' => 'Version Fran&ccedil;aise');
        }
 
    }
 
}
?>

et pour finir voici mon fichier .wsdl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2009 (http://www.altova.com) by Plop (plzp) -->
<wsdl:definitions 
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
  xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
  xmlns:tns="http://new.webservice.namespace" 
  targetNamespace="http://new.webservice.namespace">
  <wsdl:types>
    <xs:schema 
      targetNamespace="http://new.webservice.namespace" 
      elementFormDefault="qualified"/>
 
    <xs:complexType name="ArrayOfstring">
      <xs:complexContent>
        <xs:restriction base="soapenc:Array">
          <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
        </xs:restriction>
      </xs:complexContent>
    </xs:complexType>
  </wsdl:types>
  <!-- ///////////////////////////Tableau/////////////////////////////////-->
  <wsdl:message
      name="TabRequest">
    <wsdl:part
      name="x"
      type="xsd:string[]/>
    <wsdl:part
      name="b"
      type="xs:int"/>
  </wsdl:message>
  <wsdl:message
    name="TabResponse">
    <wsdl:part
      name="resultTab"
      type="xs:int"/>
  </wsdl:message>
  <!-- //////////////////////////Add///////////////////////////////////////////-->
  <wsdl:message
    name="AddRequest">
    <wsdl:part
      name="a"
      type="xs:int"/>
    <wsdl:part
      name="b"
      type="xs:int"/>
  </wsdl:message>
  <wsdl:message
    name="AddResponse">
    <wsdl:part
      name="resultAdd"
      type="xs:int"/>
  </wsdl:message>
  <!-- //////////////////////////Substract//////////////////////////////////////-->
  <wsdl:message
    name="SubstractRequest">
    <wsdl:part
      name="c"
      type="xs:int"/>
    <wsdl:part
      name="d"
      type="xs:int"/>
  </wsdl:message>
  <wsdl:message
    name="SubstractResponse">
    <wsdl:part
      name="resultSubstract"
      type="xs:int"/>
  </wsdl:message>
  <!-- ///////////////////////////Multiplier//////////////////////////////////////////////-->
  <wsdl:message
    name="MultiplierRequest">
    <wsdl:part
      name="e"
      type="xs:int"/>
    <wsdl:part
      name="f"
      type="xs:int"/>
  </wsdl:message>
  <wsdl:message
    name="MultiplierResponse">
    <wsdl:part
      name="resultMultiplier"
      type="xs:int"/>
  </wsdl:message>
  <!-- ////////////////////////////////////////////////////////////////////////////////////-->
  <wsdl:portType
    name="ChristopheService">
    <wsdl:operation
      name="Add">
      <wsdl:input
        message="tns:AddRequest"/>
      <wsdl:output
        message="tns:AddResponse"/>
    </wsdl:operation>
    <wsdl:operation
      name="Substract">
      <wsdl:input
        message="tns:SubstractRequest"/>
      <wsdl:output
        message="tns:SubstractResponse"/>
    </wsdl:operation>
    <wsdl:operation
      name="Multiplier">
      <wsdl:input
        message="tns:MultiplierRequest"/>
      <wsdl:output
        message="tns:MultiplierResponse"/>
    </wsdl:operation>
 
    <wsdl:operation
      name="Tab">
      <wsdl:input
        message="tns:TabRequest"/>
      <wsdl:output
        message="tns:TabResponse"/>
    </wsdl:operation>
 
  </wsdl:portType>
  <wsdl:binding
    name="BasicHttpBinding_Christophe"
    type="tns:ChristopheService">
    <soap:binding
      style="document"
      transport="http://schemas.xmlsoap.org/soap/http"/>
    <!-- ////////////////////////////////////////////////////////////////////////////////////-->
    <wsdl:operation
      name="Add">
      <soap:operation
        soapAction="urn:#http://localhost/WebServices/Add"/>
      <wsdl:input>
        <soap:body
          use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body
          use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <!-- ////////////////////////////////////////////////////////////////////////////////////-->
    <wsdl:operation
      name="Substract">
      <soap:operation
        soapAction="urn:#http://localhost/WebServices/Substract"/>
      <wsdl:input>
        <soap:body
          use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <!-- ////////////////////////////////////////////////////////////////////////////////////-->
    <wsdl:operation name="Multiplier">
      <soap:operation soapAction="urn:#http://localhost/WebServices/Multiplier"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <!-- ////////////////////////////////////////////////////////////////////////////////////-->
    <wsdl:operation name="Tab">
      <soap:operation soapAction="urn:#http://localhost/WebServices/Tab"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="Service1">
    <wsdl:port name="BasicHttpBinding_Christophe" binding="tns:BasicHttpBinding_Christophe">
      <soap:address location="http://localhost/WebServices/roz.php"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
En vous remerciant