Web service server php client C#
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:
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:
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çaise');
}
}
}
?> |
et pour finir voici mon fichier .wsdl
Code:
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