IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Webservice PHP (Server) => C# (Client)


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Points : 85
    Points
    85
    Par défaut Webservice PHP (Server) => C# (Client)
    Bonjour,

    Je dois mettre en place un webservice en PHP et consommé par un client sous C#.
    J'ai donc créé le webservice avec la classe SoapServer avec PHP5. Tout fonctionne correctement quand je fais mes tests PHP => PHP mais dès que l'autre développer fait le test sous C#. Rien ne va plus.

    Apparemment mon webservice ne respecte pas les recommandations WS-I (http://www.ws-i.org/profiles/BasicPr...004-04-16.html) et sans ça C# ne voudra pas fonctionner. Cela fait plus 1 semaine que je cherche et je ne trouve pas de solution. Je craques réellement
    Par exemple : cette recommandation ne reconnait pas du tout les Array, il faut utiliser une séquence avec un maxOccurs="unbounded" . Ok ça c'était facile mais il reste pleins de trucs et je ne comprend plus rien.

    J'ai cherché sur le net et j'ai trouvé des pistes mais sans jamais trouvé de solution solide et viable. C'est d'ailleurs bizarre que personne publié de méthode pour avoir un webservice PHP => C#.

    Je viens donc vous voir pour vous demander quelques conseils.

    Tout d'abord, comment avez vous généré le WSDL ? Avez vous utilisé un outil pour qu'il soit généré automatiquement ? Si oui lequel ?

    Ensuite avez vous trouvé une solution pour qu'un webservice PHP soit compatible avec un client C# ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    tu peux gerener un WDSL avec Zend Soap

  3. #3
    Membre régulier Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Points : 85
    Points
    85
    Par défaut
    Zend Soap ? Ca appartient au framework de Zend, non ?

    Mais moi je n'utilise aucun framework.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par vanitom Voir le message
    Zend Soap ? Ca appartient au framework de Zend, non ?

    Mais moi je n'utilise aucun framework.
    Zend Soap est une libraire

  5. #5
    Membre régulier Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Points : 85
    Points
    85
    Par défaut
    Ah ok et aurais tu le liens ?
    Car quand j'ai fais la recherche, je ne suis tombé que la doc du framework de Zend.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par vanitom Voir le message
    Ah ok et aurais tu le liens ?
    Car quand j'ai fais la recherche, je ne suis tombé que la doc du framework de Zend.
    prend tout le frameword tu supprimer les lib non utiliser, chaque lib du framework est utilisable en standalone

  7. #7
    Membre régulier Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Points : 85
    Points
    85
    Par défaut
    Merci, je viens de tester et j'ai l'impression que le WSDL est pas mal du tout.
    Par contre j'ai juste un problème.

    Quand je le met sur mon serveur et que je demande le WSDL, ça tourne en boucle et tous mes autres sites web sont en vrac.
    As tu déjà eu le même problème ?

  8. #8
    Membre régulier Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Points : 85
    Points
    85
    Par défaut
    Voici mon fichier de test au cas ou j'aurais une connerie dans mon fichier
    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
    <?php
     
     
    	require_once "Zend/Soap/AutoDiscover.php";
    	require_once "Zend/Soap/Wsdl/Strategy/ArrayOfTypeSequence.php";
    	require_once "Zend/Soap/Server.php";
    	require_once "Zend/Soap/Wsdl.php";
     
     
    function debug ($var = false, $showHtml = false, $showFrom = true) {
    	$out = "";
     
    	if ($showFrom) {
    		$calledFrom = debug_backtrace();
    		$out .= '<strong>' . $calledFrom[0]['file'] . '</strong>';
    		$out .= ' (line <strong>' . $calledFrom[0]['line'] . '</strong>)';
    	}
    	$out .= "\n<pre class=\"commercio-debug\">\n";
     
    	$out .= print_r($var, true);
    	if ($showHtml) {
    		$out .= str_replace('<', '&lt;', str_replace('>', '&gt;', $out));
    	}
    	$out .= "\n</pre>\n";
     
    	global $request;
    	if ($request ['shell']) {
    		$out = "______________________________________________\n" . trim (strip_tags($out)) . "\n______________________________________________\n";
    	}
     
    	echo $out;
    }
     
    	class Walk {
    		/**
    		 * @var int
    		 */
    		var $Walkid;
    		/**
    		 * @var string
    		 */
    		var $WalkTitle;
    		/**
    		 * @var string
    		 */
    		var $WalkDate;
    		/**
    		 * @var string
    		 */
    		var $WalkDescription;
    	}
    	class Walks {
    		/**
    		 * @var Walk[]
    		 */
    		public $ar;
    	}
     
    	class Test {
     
    		/**
    		 * @param int
    		 * @return int
    		 */
    		public function testBasic ($val) {
    			return $val;
    		}
     
    		/**
    		 *	@param int
    		 *  @return Walks
    		 */ 
    		public function GetWalk($walkid)
    		{
    			return array(
    				"WalkId" => $walkid,
    				"WalkTitle" => "Title of my long walk",
    				"WalkDate" => date("Y-m-d", time()),
    				"WalkDescription" => "Really long walk description"
    			);
    		}
     
    		/**
    		 * @return Walks
    		 */
    		public function GetWalks()
    		{
    			return array (
    				array(
    					"WalkId" => 1,
    					"WalkTitle" => "Title of my long walk",
    					"WalkDate" => date("Y-m-d", time()),
    					"WalkDescription" => "Really long walk description",
    				),
    				array(
    					"WalkId" => 2,
    					"WalkTitle" => "Title of my long walk",
    					"WalkDate" => date("Y-m-d", time()),
    					"WalkDescription" => "Really long walk description",
    				),
    			);
    		}
    	}
     
    	if (array_key_exists('wsdl', $_GET)) {
    		// Retour de la WSDL
    		$wsdl = new Zend_Soap_AutoDiscover("Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence");
    		$wsdl->setClass('Test');
    		$wsdl->handle();
    		exit ();
    	}
     
    	// Traitement de la requête
    	$server = new Zend_Soap_Server('http://' . $_SERVER ['SERVER_NAME'] . $_SERVER ['REQUEST_URI'] . '?wsdl');
    	$server->setOptions (array (
    		'encoding' => 'UTF-8',
    	));
    	$server->setClass('Test');
    	$server->handle();
     
    ?>

  9. #9
    Membre régulier Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Points : 85
    Points
    85
    Par défaut
    A oui précise. Tout fonctionne correctement en local mais ça merde uniquement sur mon serveur dédié.

  10. #10
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Heu a mon avis je te demanderais de verifier si les paths des "require_once" sont vraiment atteint et de verifier les url par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $server = new Zend_Soap_Server('http://' . $_SERVER ['SERVER_NAME'] . $_SERVER ['REQUEST_URI'] . '?wsdl');
    avec un var_dump!

    Bon si tout est ok! tu nous en dira plus!

Discussions similaires

  1. client soap PHP server DELPHI
    Par curt25 dans le forum Langage
    Réponses: 6
    Dernier message: 26/04/2011, 13h00
  2. [WebService]Server Delphi et client Java
    Par davels dans le forum Web & réseau
    Réponses: 12
    Dernier message: 05/06/2008, 11h11
  3. Webservice PHP / client C#
    Par neril dans le forum Services Web
    Réponses: 1
    Dernier message: 26/05/2008, 06h11
  4. Réponses: 3
    Dernier message: 17/11/2006, 13h45
  5. [PHP-JS] [Javascript Client et PHP server]J'ai pas compris..
    Par Jean_Benoit dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/05/2006, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo