2012-11-14 6 views
0

J'ai utilisé l'interface SOAP pour tester ma mise en œuvre et cela fonctionne. Cependant, je ne sais pas comment faire cela sans interface utilisateur SOAP dans un environnement php. J'ai actuellement le code php tirant des données de la base de données MySQL et produisant du XML bien formé, mais je ne sais pas comment envoyer cette sortie XML au service web à traiter.Comment envoyer du XML aux services Web SOAP?

Toute aide serait géniale.

Merci

+0

Si vous voulez envoyer le fichier XML d'enveloppe de savon directement, vous pouvez juste à une demande de poste cURL et définissez les données POST brutes à votre XML. – MrCode

Répondre

1

Vous n'avez pas besoin de créer votre propre XML SOAP. Il y a une extension SOAP parfaitement bien disponible, où vous pouvez créer un SoapClient en utilisant le fichier WSDL des services.

http://ch1.php.net/soap

Si elle est vraiment seulement d'envoyer les données, utilisez curl.

Exemple de configuration: How can I send SOAP XML via Curl and PHP?

+0

Est-ce une mauvaise pratique d'ignorer le WSDL? J'ai déjà le code pour créer le XML et cela fonctionne parfaitement via l'interface SOAP. Sur une autre note, j'utiliserais quelque chose comme $ xml = new SoapVar ($ xml_string, XSD_ANYXML); avec $ xml_string étant le code XML que je produis? – rawrzors

+0

Je ne pense pas que ce soit mauvais. Vous allez devoir adapter votre code lorsque les services changent (nouvelle méthode, nouveaux paramètres, etc.). Lors de l'utilisation du wsdl, il vous suffit d'utiliser la nouvelle fonctionnalité, mais vous n'avez pas besoin de changer le xml à générer. S'il ne s'agit que d'envoyer des données, utilisez [curl] (http://ch1.php.net/curl). Exemple de configuration: http://stackoverflow.com/questions/3006977/how-can-i-send-soap-xml-via-curl-and-php –

+0

Curl semble assez intéressant. Le CURLOPT_POSTFIELDS serait tout entre et en dehors de l'en-tête de sécurité, qui serait dans CURLOPT_HTTPHEADER? – rawrzors