Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 09h55   #1
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
Par défaut web services soap

Bonjour,

je suis en cours de création d'un webservices (soap)
je me demandais comment je devais faire pour retourner le résultat au format xml à mon client windev

Merci d'avance
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 09h57   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Le PHP ne fait que générer ce qu'il retourne.
Donc header() pour préciser le type de retour (XML dans ton cas) et ensuite suffit de faire du echo pour le XML.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h17   #3
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
transgohan,
si je comprends bien je fais un
Code :
1
2
3
 
header("Content-Type: text/xml");
echo  "<id>".$ma_variable."</id>";
??
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h23   #4
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Euh pas seulement... Ton echo c'est pas un fichier XML là...
Te manques l'entête du fichier, ainsi que le premier parent.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h38   #5
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
en effet ... donc cela devrait fonctionner
Code :
1
2
3
4
5
6
 
header("Content-Type: text/xml");
$xml = "<?xml version='1.0' encoding='UTF-8'>";
$xml .="<user><id>".$numero".</id>";
$xml .="</user>";	
echo $xml;
Merci pour ton aide
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h45   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
t’utilises pas SoadServer ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h50   #7
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
stealth35,
j'utilise bien soap server, mais j'ai un peu de mal à comprendre le fonctionnement
j'ai fait 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
 
 
class Connexion 
{
 
	/**
   	 * Connexion
   	 * @param string $login
   	 * @param string $pwd
   	 * @return string
   	 */
   	function connexion($login, $pwd)
   	{
		//la fonction me ramène un numéro
		$xml  = "<?xml version='1.0' encoding='UTF-8'?>";
			$xml .= "<user><id>".$numero".</id>";
			$xml .= "</user>";					
 
		}
 
 
 
 
   	}
}
 
$server = new SoapServer("http://localhost/connexion.wsdl");
$server->setClass("Connexion", $xml);
$server->handle();
Mais je ne sais pas si je m'y prends bien
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h07   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
y'a pas de XML a faire, les classes sont en PHP
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h12   #9
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
donc si je comprends bien je fais juste mon traitement dans ma fonction
et ensuite je fais

Code :
1
2
3
4
 
$server = new SoapServer("http://localhost/connexion.wsdl");
$server->setClass("Connexion", $numero);
$server->handle();
$numero correspondant à ma valeur que je souhaite retourner

merci
waxx
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h14   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
tu fais tes classes comme tu les ferais en PHP, t'as pas besoin de mettre le paramètre args (regarde bien la doc de setClass)

quand le client fera :
Code :
$client->connexion($login, $password);
la méthode connexion sera appeler avec les arguments du client
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h16   #11
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
si t'as un exemple je suis preneur
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h25   #12
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
il doit y avoir un truc que je ne capte pas
je ne suis pas dans ma partie client mais serveur
le serveur est en php et le client sera en windev (;-[ j'ai des contraintes)

au début j'avais fait cela (cf ci-dessous)
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
 
<?
class Connexion 
{
 
	/**
   	 * Connexion
   	 * @param string $login
   	 * @param string $pwd
   	 * @return string
   	 */
   	function connexion($login, $pwd)
   	{
		.....
                //traitement de ma requete
			return $obj['numero'];	
 
 
		}
 
 
 
 
   	}
}
 
$server = new SoapServer("http://localhost/connexion.wsdl");
$server->setClass("Connexion");
$server->handle();
 
 
?>

j'avais fait un client vite fait en php pour voir le retour, mais je ne l'avais pas en xml
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$client = new SoapClient(
	'http://localhost/connexion.wsdl',
	 array(
		'wsdl_cache' => 0,
		'trace' => 1
	)
);
 
try { 
 
	$con = $client->connexion('nom','mdp');
	echo $con;
}
est ce qu'il y a quelque chose que je loupe coté serveur
Waxx
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h31   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
dans ton WSDL t'as bien l'adresse du serveur ?

ps : c'est <?php pas <?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h37   #14
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
Oui dans mon wsdl j'ai bien l'adresse de mon 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
 
<?xml version='1.0' encoding='UTF-8'?>
<definitions name="server" targetNamespace="urn:server" xmlns:typens="urn:server" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
	<message name="connexion">
		<part name="login" type="xsd:string"/>
		<part name="pwd" type="xsd:string"/>
	</message>
	<message name="connexionResponse">
		<part name="connexionReturn" type="xsd:string"/>
	</message>
 
	<portType name="ConnexionPortType">
		<operation name="connexion">
			<documentation>
				Connexion
			</documentation>
			<input message="typens:connexion"/>
			<output message="typens:connexionResponse"/>
		</operation>
 
    </portType>
	<binding name="ConnexionBinding"
		type="typens:ConnexionPortType">
		<soap:binding style="rpc"
			transport="http://schemas.xmlsoap.org/soap/http" />
 
		<operation name="connexion">
			<soap:operation soapAction="urn:ConnexionAction" />
			<input>
				<soap:body namespace="urn:server" use="encoded"
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
			</input>
			<output>
				<soap:body namespace="urn:server" use="encoded"
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
			</output>
		</operation>
	</binding>
	<service name="serverService">
		<port name="ConnexionPort" binding="typens:ConnexionBinding">
			<soap:address location="http://localhost/connexion.php"/>
		</port>
	</service>
</definitions>
et pour le fichier connexion.php, j'ai le code de mon soap_server
[pour le ps merci erreur en le copiant à la main]

merci
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h39   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
quelle est l'erreur coté client ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h42   #16
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
je n'ai pas d'erreur coté client
mais j'ai juste le numéro qui s'affiche, alors que je devrais avoir un xml pour pouvoir le parser ensuite
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h44   #17
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
Citation:
Envoyé par waxx59 Voir le message
je n'ai pas d'erreur coté client
mais j'ai juste le numéro qui s'affiche, alors que je devrais avoir un xml pour pouvoir le parser ensuite

ah mais non c'est tout l’intérêt du SOAP, il te renvoie une valeur dans ton langage, le XML c'est juste pour le transport des données, y'a pas a le parser c'est le client qui s'en occupe tout seul
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h50   #18
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
ok, merci pour toutes ces précisions
mais dans ce cas pourquoi mon client windev (je m'y mets juste à ce langage)
me dit que ce n'est pas une enveloppe soap

bizarre
waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h52   #19
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
ton serveur est visiblement correct, je te conseil plus d'aller sur le forum de windev pour voir ce qu'il se passe coté client.
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h55   #20
Invité de passage
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 3
Points : 3
GRAND MERCI stealth35
pour le temps accordé

waxx59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h24.


 
 
 
 
Partenaires

Hébergement Web