Appel de la méthode php soap : 1. Ouvrez "php_soap.dll" dans le fichier php.ini ; 2. Interrogez les méthodes, les paramètres et les types de données du service Web ; 3. Épissez la chaîne XML selon le document de développement ; le navigateur Exécutez simplement le code.
Comment appeler la méthode php soap ?
Appelez Soap sous PHP pour réaliser le docking
Cet article prend comme exemple le développement de l'interface de réservation de téléphone portable iPhone 6 d'une entreprise pour présenter le processus de mise en œuvre d'un appel SOAP sous PHP5.
SOAP (Simple Object Access Protocol ) Simple Object Access Protocol est un protocole simple d'échange d'informations dans un environnement décentralisé ou distribué. Il s'agit d'un protocole basé sur XML. Il comprend quatre parties : Enveloppe SOAP (enveloppe). Quoi, qui l'a envoyé, qui doit l'accepter et le traiter et le cadre de traitement des règles de codage SOAP (codage ; règles), utilisées pour représenter les instances de types de données que les applications doivent utiliser ; représentation SOAP RPC (RPC) ; représentation), qui représente le protocole pour les appels et les réponses de procédure distante ; la liaison SOAP, qui utilise le protocole sous-jacent pour échanger des informations.
WSDL (Web Service Description Language) décrit XML Format XML standard pour les services Web, WSDL est proposé par des développeurs tels qu'Ariba, Intel, IBM et Microsoft. Il définit les opérations et les messages pertinents envoyés et reçus par un service Web donné de manière abstraite et indépendante des langages spécifiques. De par sa définition, vous ne pouvez pas encore considérer WSDL comme un langage de définition d'interface objet. Par exemple, les architectures d'application telles que CORBA ou COM utiliseront des langages de définition d'interface objet. WSDL reste neutre en matière de protocole, mais il prend en charge de manière intégrée la liaison à SOAP, établissant ainsi un lien indissociable avec SOAP. Ainsi, lorsque je discuterai de WSDL dans cet article, je supposerai que vous utilisez SOAP comme protocole de communication.
Bien que SOAP et WSDL soient deux standards majeurs pour les services web, ils ne sont pas forcément connectés et peuvent être utilisés indépendamment. La relation entre eux est similaire à la relation entre HTTP et HTML. Le premier est un protocole et le second est une description d'un serveur Web.
Dans le fichier de configuration PHP php.ini, recherchez
extension=php_soap.dll
et supprimez le signe ";" devant, puis redémarrez le service web
L'interface de saisie des commandes d'une entreprise de télécommunications provinciale est http://***.******.com/services/AcceptedBusiness?wsdl
Nous utilisons les méthodes __geunctions() et __getTypes() de SoapClient pour afficher les méthodes, paramètres et types de données de l'interface
Seules les interfaces répertoriées dans __getFunctions peuvent être appelées par soap.
Créez le code soap.php dans le répertoire racine
<?php header("content-type:text/html;charset=utf-8");try { $client = new SoapClient("http://***.******.com/services/AcceptedBusiness?wsdl"); print_r($client->__getFunctions()); print_r($client->__getTypes()); } catch (SOAPFault $e) { print $e; } ?>
Après l'exécution dans le navigateur : http://localhost/soap.php, le résultat de retour est le suivant
Array( [0] => ArrayOf_xsd_anyType introduceAcceptedBusiness(string $c3, string $c4, string $linkman, string $linknum, string $num, string $idcard, string $remark, string $address) [1] => ArrayOf_xsd_anyType introduceAcceptedBusinessByAiZhuangWei(string $subname, string $linkphone, string $idcard, string $address, string $businesstype, string $marketcode, string $surveycode, string $commanager, string $commanagerphone, string $bendiwang, string $fenju, string $zhiju, string $remark) [2] => string introduceAcceptedBusinessByStandardInterface(string $xmlStr) [3] => string introduceAcceptedBusinessByCallOut(string $xmlStr) [4] => string introduceAcceptedBusinessByYddj(string $xmlParam) [5] => ArrayOf_xsd_anyType queryAcceptedBusinessByAiZhuangWei(string $surveycode, string $starttime, string $endtime) [6] => string queryCallOutOrderByConfig(string $xmlParam) )Array( [0] => anyType ArrayOf_xsd_anyType[] )
Il existe une méthode introduitAcceptedBusinessByStandardInterface(string $xmlStr), qui sera le document de développement L'interface à utiliser mentionnée dans le paramètre est une chaîne XML
De plus, certaines interfaces mentionnent l'authentification SoapHeader, qui nécessite l'ajout de la méthode __setSoapHeaders. Pour plus de détails, voir http://php.net/manual. /zh/ soapclient.setsoapheaders.php
Cette étape consiste à épisser la chaîne XML selon le document de développement, puis à la transmettre en tant que paramètre d'introducedBusinessByStandardInterface
Créez acceptbusiness.php avec ce qui suit. content
<?php header("content-type:text/html;charset=utf-8");try { $client = new SoapClient('http://***.*******.com/services/AcceptedBusiness?wsdl'); $xml = " <?xml version='1.0' encoding='UTF-8' ?> <PACKAGE> <C3>**电信</C3> <C4></C4> <LINKMAN>张三</LINKMAN> <LINKNUM>13412341234</LINKNUM> <LINKADDRESS>广东深圳</LINKADDRESS> <REMARK>iPhone 6</REMARK> <CHANNEL></CHANNEL> <GRIDCODE>1111111111111111111111111111111</GRIDCODE> <AGENTCODE>2111</AGENTCODE> <KEY>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111</KEY> </PACKAGE> "; $return = $client->introduceAcceptedBusinessByStandardInterface($xml); print_r($return); } catch (SOAPFault $e) { print_r('Exception:'.$e); } ?>
Exécuter dans le navigateur Après cela, revenez à
<?xml version="1.0" encoding="UTF-8"?> <PACKAGE> <STATUS>0</STATUS> <REASON>入单成功!</REASON> <ORDERSEQ>2014100905523549742</ORDERSEQ> </PACKAGE>
apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!