Maison > développement back-end > Problème PHP > Comment appeler la méthode Soap php

Comment appeler la méthode Soap php

藏色散人
Libérer: 2023-03-14 08:34:01
original
3623 Les gens l'ont consulté

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 Soap php

Comment appeler la méthode php soap ?

Appelez Soap sous PHP pour réaliser le docking

Le processus de mise en œuvre d'un appel SOAP sous PHP5

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.

1. Concepts de base

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.

2. Configuration sous PHP5

Dans le fichier de configuration PHP php.ini, recherchez

extension=php_soap.dll
Copier après la connexion

et supprimez le signe ";" devant, puis redémarrez le service web

3. et types de données

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;
}
?>
Copier après la connexion

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[]
)
Copier après la connexion

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


Quatre. Soumettez la commande

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(&#39;http://***.*******.com/services/AcceptedBusiness?wsdl&#39;);    $xml = "
    <?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39; ?>
    <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(&#39;Exception:&#39;.$e);
}
?>
Copier après la connexion

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>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal