WebService SOAP entre PHP <-> ASP

Orsam
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 26 Fév 2011

WebService SOAP entre PHP <-> ASP

Message le Mer Jan 25, 2012 17:54

Bonjour à tous,

Je viens de créer mon premier WebService PHP (qui fonctionne très bien entre deux sites PHP).
J'ai généré le fichier de description (WSDL) avec Zend FrameWork et le code suivant :

Code: Tout sélectionner
$autodiscover = new Zend_Soap_AutoDiscover();
$autodiscover->setClass('maclass.php');
$autodiscover->setUri('http://monserveur.fr/serveur.php');
$autodiscover->handle();
header('Content-Disposition: attachment; filename="maclass.wsdl"');


Et comme je le disais plus haut, tout fonctionne parfaitement.

Là où il y a un problème, c'est quand j'essaie de faire fonctionné avec un client ASP (classic)

Le fichier WSDL de mon serveur PHP n'ai apparemment pas compris par l'ASP. (J'ai essayé avec d'autre WSDL trouvé sur Internet, et ça marche)

Voici le code ASP pour le client :
Code: Tout sélectionner
Dim oSOAP     
Set oSOAP = Server.CreateObject("MSSOAP.SoapClient30")
oSOAP.ClientProperty("ServerHTTPRequest") = True                       
oSOAP.mssoapinit("http://www.serveur.fr/monfichier.wsdl")
Response.Write(oSOAP.GetReply("121","123")) 


Ma question est la suivante, y a t'il un format de fichier WSDL, qui soit reconnu par tous les langages.
Ma deuxième question : Existe t'il générateur de ce type de fichiers.

Ça fait plusieurs jours que je travail à ça, et je vais bientôt cracker !!!! :lol:


Merci pour votre aide.

Orsam

poulpe
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 29 Juin 2004

Re: WebService SOAP entre PHP <-> ASP

Message le Ven Jan 27, 2012 15:31

pourquoi ton wsdl est envoye comme un attachement ?
Tu es sur de cette ligne ?

Code: Tout sélectionner
header('Content-Disposition: attachment; filename="maclass.wsdl"');


Ca sert a faire une download box, or ton wsdl devrait etre juste 'affcihe' si tu y accede, non ?

Orsam
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 26 Fév 2011

Re: WebService SOAP entre PHP <-> ASP

Message le Ven Jan 27, 2012 19:07

Bonjour et merci pour ta réponse.

La ligne dont tu parle est correcte, ce code me génère seulement mon fichier WSDL à l'aide de Zend_SOAP_Discover et me demande de l'enregistrer. A ce niveau tout fonctionne.

Ce que je ne comprends pas, c'est que quand Zend me génère mon fichier, il ressemble à ça :

<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://webservice.monsite.com/serveur.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Bidon" targetNamespace="http://webservice.monsite.com/serveur.php">
<types>
<xsd:schema targetNamespace="http://webservice.monsite.com/serveur.php"/>
</types>
<portType name="BidonPort">
<operation name="setParamInutile">
<documentation>@param string $_paramInutile</documentation>


En quand au format lu par ASP il ressemble à ça :

<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://ws.textanywhere.net/TA_WS" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://ws.textanywhere.net/TA_WS" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://ws.textanywhere.net/TA_WS">
<s:element name="SendSMS">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Client_ID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Client_Pass" type="s:string" />


Ensuite, j'ai essayé de créer un WSDL avec Zend Studio, résultat, le format est encore différent...
<wsdl:types>
<xsd:schema targetNamespace="http://www.example.org/NewWSDLFile/">
<xsd:element name="NewOperation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string"/>



Je suis complètement perdu...

Mon client ASP ne comprend que le deuxième format, Mes clients SOAP PHP utilisent le premier format (qui fonctionne parfaitement).

Alors ma question, c'est quel format est le bon ?? Et si le premier format (celui que j'utilise) n'ai pas le bon, Comment générer le deuxième format avec Zend_SOAP_Discover ?

Merci.

Olivier

poulpe
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 29 Juin 2004

Re: WebService SOAP entre PHP <-> ASP

Message le Ven Jan 27, 2012 19:40

Salut.
Je ne sais pas trop mais ...
- Peut etre que ton client ASP attend une version particuliere de ton serer SOAP (1.1 - 1.2 autre...)

- essaie de creer ton serveuren PHP natif, http://ca3.php.net/manual/en/soapserver.soapserver.php, avec ou sans wsdl,

- passe a une API en REST :)

Orsam
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 26 Fév 2011

Re: WebService SOAP entre PHP <-> ASP

Message le Ven Jan 27, 2012 19:52

Avec ou sans WSDL ?????

Orsam
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 26 Fév 2011

Re: WebService SOAP entre PHP <-> ASP

Message le Sam Jan 28, 2012 11:42

Bonjour,

J'ai trouvé !!!!

J'ai générer mon fichier WSDL avec Zend Studio avec la fonction "rpc" (je ne sais pas ce que c'est) et le fichier WSDL est compris par les deux langages..

Ouffff !!! :lol:

Olivier

poulpe
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 29 Juin 2004

Re: WebService SOAP entre PHP <-> ASP

Message le Sam Jan 28, 2012 17:30

et ben voila !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité