Heim > Backend-Entwicklung > PHP-Tutorial > Implementierungsprozess für WSDL- und SOAP-Aufrufe unter PHP5

Implementierungsprozess für WSDL- und SOAP-Aufrufe unter PHP5

WBOY
Freigeben: 2016-08-08 09:28:33
Original
1213 Leute haben es durchsucht

1. Grundkonzepte

SOAP (Simple Object Access Protocol) ist ein einfaches Protokoll zum Austausch von Informationen in einer dezentralen oder verteilten Umgebung. Es ist ein XML-basiertes Protokoll und besteht aus vier Teilen: SOAP envelop (Umschlag), Kapselung Definiert ein Framework, das beschreibt, was In der Nachricht steht, wer sie gesendet hat, wer sie akzeptieren und verarbeiten soll und wie sie verarbeitet werden soll. Die SOAP-Kodierungsregeln werden verwendet, um Instanzen der Datentypen darzustellen, die die Anwendung verwenden muss das Protokoll für Remote-Prozeduraufrufe und -Antworten; die SOAP-Bindung verwendet das zugrunde liegende Protokoll zum Austausch von Informationen.

WSDL (Web Service Description Language) ist das Standard-XML-Format zur Beschreibung von XML-Webdiensten. WSDL wurde von Entwicklern wie Ariba, Intel, IBM und Microsoft vorgeschlagen. Es definiert die relevanten Vorgänge und Nachrichten, die von einem bestimmten Webdienst gesendet und empfangen werden, auf abstrakte Weise, unabhängig von bestimmten Sprachen. Per Definition kann man sich WSDL noch nicht als Objektschnittstellen-Definitionssprache vorstellen. Anwendungsarchitekturen wie CORBA oder COM verwenden beispielsweise Objektschnittstellen-Definitionssprachen. WSDL bleibt protokollneutral, verfügt jedoch über eine integrierte Unterstützung für die Bindung an SOAP und stellt so eine untrennbare Verbindung mit SOAP her. Wenn ich in diesem Artikel WSDL bespreche, gehe ich davon aus, dass Sie SOAP als Kommunikationsprotokoll verwenden.

Obwohl SOAP und WSDL zwei wichtige Standards für Webdienste sind, sind sie nicht unbedingt miteinander verbunden und können unabhängig voneinander verwendet werden. Die Beziehung zwischen ihnen ähnelt der Beziehung zwischen HTTP und HTML. Ersteres ist ein Protokoll und letzteres ist eine Beschreibung eines Webservers.


2. Konfiguration unter PHP5

Suchen Sie in der PHP-Konfigurationsdatei php.ini nach

extension=php_soap.dll
Nach dem Login kopieren

Entfernen Sie dann das „;“-Zeichen vorne und starten Sie den Webdienst neu

3. Fragen Sie Webdienstmethoden, Parameter und Datentypen ab

Die Auftragseingabeschnittstelle eines Telekommunikationsunternehmens in der Provinz ist http://***.******.com/services/AcceptedBusiness?wsdl
Wir verwenden die Methodenansicht __geunctions() und __getTypes() von SoapClient die Methoden, Parameter und Datentypen der Schnittstelle
Nur die in __getFunctions aufgeführten Schnittstellen können von Soap aufgerufen werden.
Erstellen Sie den Code Soap.php im Stammverzeichnis

<?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;
}
?>
Nach dem Login kopieren

Nach dem Ausführen von http://localhost/soap.php im Browser lautet das Rückgabeergebnis wie folgt

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[]
)
Nach dem Login kopieren

Es gibt eine Methode „introductAcceptedBusinessByStandardInterface(string $xmlStr), die die im Entwicklungsdokument erwähnte zu verwendende Schnittstelle sein wird, und der Parameter ist eine XML-Zeichenfolge

Darüber hinaus erwähnen einige Schnittstellen die SoapHeader-Authentifizierung, die das Hinzufügen der __setSoapHeaders-Methode erfordert. Weitere Informationen finden Sie unter http://php.net/manual/zh/soapclient.setsoapheaders.php


4. Bestellung absenden

In diesem Schritt wird die XML-Zeichenfolge gemäß dem Entwicklungsdokument gespleißt und dann als Parameter von „introductAcceptedBusinessByStandardInterface“ übergeben
, um „acceptedbusiness.php“ mit dem folgenden Inhalt zu erstellen

<?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);
}
?>
Nach dem Login kopieren

Nach der Ausführung im Browser geben Sie

zurück

<?xml version="1.0" encoding="UTF-8"?>
<PACKAGE>
    <STATUS>0</STATUS>
    <REASON>入单成功!</REASON>
    <ORDERSEQ>2014100905523549742</ORDERSEQ>
</PACKAGE>
Nach dem Login kopieren

Referenz: http://www.cnblogs.com/txw1958/p/php5-soap-wsdl.html

Das Obige stellt den Implementierungsprozess von WSDL- und SOAP-Aufrufen unter PHP5 vor, einschließlich verschiedener Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage