Webservice C# et Client PHP

yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 - 22 févr. 2008 à 13:17
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 - 23 févr. 2008 à 10:07
Salut a tous

j'espere avoir poster dans le bon thème sinon je m'en excuse

Voila j'ai un webservice écrit un C# avec une webmethode toute simple qui  retourne la string envoyé.


<hr />

[




WebMethod
]


public



string
TestStr(

string
value){


return
value;}




<hr />



J'ai écrit un client PHP qui appel mon webservice et dont voila le code :

<hr />
$client new SoapClient('http://XXXXXXXXXX/service.asmx?WSDL',  array('soap_version'  > SOAP_1_1, 'trace' => true));
var_dump($client);

$result = $client->TestStr("test");
var_dump($result);
<hr />

L'appel à l'appel me retourne toujours une chaine vide. J'ai fais des tests pour savoir si ma variable était bien assigné dans ma webmethod mais en fait le client PHP envoi toujours une chaine vide

est ce que quelqu'un pourrait m'aider svp

Merci

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 févr. 2008 à 13:51
Hello,

lr problème vient sans doute de ton wsdl. Est-ce que tout y est bien défini ?
0
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 3
22 févr. 2008 à 14:01
je pense que oui tout y est bien défini

-<s:element name= " TestStr ">

-<s:complexType>

-<s:sequence>

 <s:elementminOccurs ="1" maxOccurs= " 1 " name ="value" type="s:string" />

 </s:sequence>

 </s:complexType>

 </s:element>

y'a d'autres choses a vérifier????
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 févr. 2008 à 15:04
Oui, les binding dans le wsdl entre les méthodes de ton service soap et les appels du client (bref, le binding de TestStr), ainsi que la définition de la requête et de la réponse (input / output)
Parce que là, tu définis juste un nouvel élément qui s'appelle TestStr et qui serait un type complexe.
Normalement tu devrais avoir un truc du genre :

    <message name="TestStrRequest">
       
    </message>
    <message name="TestStrResponse">

       

    </message>

   
        <operation name="TestStr">
           
            <output message="tns:TestStrResponse"/>
        </operation>
   

   
        <soap:binding style="rpc"
        transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="TestStr">
            <soap:operation soapAction="urn:xmethods-delayed-quotes#TestStr"/>
           
                <soap:body use="encoded" namespace="urn:xmethods-delayed-quotes"
                encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
           
            <output>
                <soap:body use="encoded" namespace="urn:xmethods-delayed-quotes"
                encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </output>
        </operation>
   

En tous cas, c'est toujours ainsi que je fonctionne.
0
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
23 févr. 2008 à 10:07
les urls de type http://XXXXXXXXXX/service.asmx?WSDL répondent généralement par un fichier wsdl construit à la volée et basé sur les capacités du service. Les capacités du service sont décrites, avec le système AXIS, dans le fichier descripteur de déployement (wsdd). Avec .net, je n'en sais rien.
Il est étonnant que le wsdl ne contienne aussi peu d'informations. Si le fichier que donne yanis est celui obtenu par cette url, c'est probablement qu'il y a une une erreur ou un problème lors du déployement du service.
0
Rejoignez-nous