Heim Backend-Entwicklung PHP-Tutorial SOAP-Webservice-Schnittstelle

SOAP-Webservice-Schnittstelle

Nov 24, 2016 pm 03:46 PM
soap

In PHP kann SOAP unterstützt werden, nachdem die Erweiterung php_soap.dll in der Datei php.ini aktiviert wurde.
In der Soap-Erweiterungsbibliothek gibt es hauptsächlich drei Arten von Objekten.
1. SoapServer
wird verwendet, um Funktionen zu definieren, die aufgerufen werden können und Antwortdaten zurückgeben, wenn serverseitige PHP-Seiten erstellt werden. Das Syntaxformat zum Erstellen eines SoapServer-Objekts lautet wie folgt:
$soap = new SoapServer($wsdl, $array);
Darunter ist $wsdl die von Shoep verwendete WSDL-Datei und WSDL ist ein Standardformat zur Beschreibung des Webdienstes. Wenn $wsdl auf null gesetzt ist, bedeutet dies, dass der WSDL-Modus nicht verwendet wird. $array sind die Attributinformationen von SoapServer und ein Array.
Die addFunction-Methode des SoapServer-Objekts wird verwendet, um zu deklarieren, welche Funktion vom Client aufgerufen werden kann. Das Syntaxformat ist wie folgt:
$soap->addFunction($function_name);
Darunter: $soap ist ein SoapServer-Objekt. $function_name ist der Name der Funktion, die aufgerufen werden muss.
Die Handle-Methode des SoapServer-Objekts wird verwendet, um Benutzereingaben zu verarbeiten und die entsprechende Funktion aufzurufen, und gibt schließlich das Verarbeitungsergebnis an den Client zurück. Das Syntaxformat lautet wie folgt:
$soap->handle([$soap_request]);
Darunter ist $soap ein SoapServer-Objekt und $soap_request ein optionaler Parameter, der zur Darstellung der Anforderungsinformationen des Benutzers verwendet wird . Wenn $soap_request nicht angegeben ist, bedeutet dies, dass der Server alle Anfragen des Benutzers akzeptiert.
2. SoapCliet
wird verwendet, um die SoapServer-Seite auf dem Remote-Server aufzurufen und den Aufruf der entsprechenden Funktion zu implementieren. Das Syntaxformat zum Erstellen eines SoapClient-Objekts lautet wie folgt:
$soap = new SoapClient($wsdl,$array);
Unter diesen sind die Parameter $wsdl und $array dieselben wie bei SoapServer.
Nach dem Erstellen des SoapClient-Objekts entspricht der Aufruf der Funktion auf der Serverseite dem Aufruf der SoapClient-Methode. Die Erstellungssyntax lautet wie folgt:
$soap->user_function($params);
Darunter , $soap ist ein SoapClient-Objekt, user_function ist die Funktion, die auf der Serverseite aufgerufen werden soll, und $params sind die Parameter, die an die Funktion übergeben werden sollen.
3. SoapFault
SoapFault wird verwendet, um Fehler zu generieren, die beim Soap-Zugriff auftreten können. Das Syntaxformat zum Erstellen eines SoapFault-Objekts lautet wie folgt:
$fault = new SoapFault($faultcode,$faultstring);
Darunter ist $faultcode ein benutzerdefinierter Fehlercode und $faultstring ein Benutzer -definierte Fehlermeldung. Das SoapFault-Objekt wird automatisch generiert, wenn auf der serverseitigen Seite ein Fehler auftritt oder wenn der Benutzer ein SoapFault-Objekt erstellt. Bei Fehlern, die beim Soap-Zugriff auftreten, kann der Client die entsprechenden Fehlerinformationen durch Erfassen des SoapFalut-Objekts erhalten.
Nach der Erfassung des SoapFault-Objekts auf dem Client können der Fehlercode und die Fehlerinformationen über den folgenden Code abgerufen werden:
$fault->faultcode;//Fehlercode
$fault->faultstring; //Fehlerinformationen
Darunter ist $fault das zuvor erstellte SoapFault-Objekt.
Sowohl SoapServer als auch SoapClient erhalten zwei Parameter, die mehrere Optionen unterstützen:
uri: Namespace, erforderlich für Client und Server.
Speicherort. Wird vom Client verwendet, um die Zugriffsadresse des Serverprogramms anzugeben, in diesem Beispiel die Programmadresse des zweiten Codes.
Trace: Wird vom Client verwendet. Wenn „true“, kann der Inhalt der Kommunikation zwischen dem Server und dem Client zum Debuggen abgerufen werden.

Soapserver.php

Java-Code

//Erstellen Sie zunächst eine SoapServer-Objektinstanz und registrieren Sie dann die gewünschten Funktionen Exposé ,

//Das letzte Handle() wird verwendet, um die akzeptierte Soap-Anfrage zu verarbeiten

error_reporting(7); //Bei offizieller Veröffentlichung auf 0 gesetzt

date_default_timezone_set (' PRC'); // Zeitzone einstellen

/* Mehrere Funktionen für Client-Anrufe */

function reverse($str)

{

$retval = '';

if (strlen($str) < 1) {

return new SoapFault ('Client', '', 'Invalid string'); >

}

for ($i = 1; $i <= strlen($str); $i++) {

$retval .= $str [(strlen($ str) - $i)];

}

return $retval;

}

function add2numbers($num1, $num2)

{

if (trim($num1) != intval($num1)) {

        return new SoapFault ('Client', '', 'The first number is invalid');  

    }  

    if (trim($num2) != intval($num2)) {  

        return new SoapFault ('Client', '', 'Die zweite Nummer ist ungültig');  

    }  

    return ($num1 + $num2);  

}  

  

function gettime()  

{  

    $time = date('Y-m-d H:i:s', Zeit());  

    return $time;  

}  

  

$soap = new SoapServer (null, array('uri' => "httr://test-rui"));  

$soap->addFunction('reverse');  

$soap->addFunction('add2numbers');  

$soap->addFunction('gettime');  

$soap->addFunction(SOAP_FUNCTIONS_ALL);  

$soap->handle();  

?>  

 SoapClient.php

Java代码  

error_reporting(7);  

versuchen Sie {  

    $client = new SoapClient (null, array('location' => "http://www.yiigo.com/Soapserver.php", 'uri' = >  "http://test-uri"));  

  

    $str = "Diese Zeichenfolge wird umgekehrt";  

    $reversed = $client->reverse($str);  

    echo "Wenn Sie '$str' umkehren, erhalten Sie '$reversed'";  

  

    $n1 = 20;  

    $n2 = 33;  

    $sum = $client->add2numbers($n1, $n2);  

    echo "
";  

    echo "Wenn Sie $n1 + $n2 versuchen, erhalten Sie $sum";  

  

    echo "
";  

    echo "Die remoye-Systemzeit ist: " . $client->gettime();  

} catch (SoapFault $fault) {  

    echo "Fehler! Code:" . $fault->Fehlercode . " Zeichenfolge:". . $fault->faultstring;  

}  

?>  

Wenn Sie „Diese Zeichenfolge wird umgekehrt“ umkehren, erhalten Sie „desrever eb lliw gnirts sihT“
Wenn Sie 20 + 33 versuchen, erhalten Sie 53
Die Remote-Systemzeit ist: 28.05.2012 16:14:29

 

通过SoapHeader实现身份认证

Java代码  

class Server  

{  

    public function auth($a)  

    {  

        if ($a != '123456789') {  

            throw new SoapFault('Server', '用户身份认证信息错误');  

        }  

    }  

  

    public function say()  

    {  

        return 'Hi';  

    }  

}  

  

$srv = new SoapServer(null, array('uri' => 'http://localhost/namespace '));  

$srv->setClass('Server');  

$srv->handle();   

 客户端

Java代码  

$cli = new SoapClient(null,  

array('uri' => 'http://localhost/namespace/',

'location' => 'http://localhost/server.php',

'trace' => true));

//auth ist die vom Server zu verarbeitende Funktion 12345689 ist der Parameter

$h = new SoapHeader(' http://localhost/namespace/',

'auth', '123456789', false, SOAP_ACTOR_NEXT);

$cli->__setSoapHeaders(array($h) );

try {

echo $cli->say(); >getMessage ();

}

Beachten Sie, dass die Serverklasse in server.php eine Methode „auth“ hat, die dem Namen des Headers entspricht Bei der Methode Auth handelt es sich um die Daten von SoapHeader. Wenn SoapServer diese Anfrage empfängt, ruft er zunächst die Auth-Methode auf und übergibt „123456789“ als Parameter an die Methode. Wenn der Parameter „mustUnderstand“ „false“ ist, wird die Methode „say“ auch dann aufgerufen, wenn keine Authentifizierungsmethode vorhanden ist. Wenn er jedoch „true“ ist und die Authentifizierungsmethode nicht vorhanden ist, wird ein Soapfault zurückgegeben, um darüber zu informieren, dass der Header nicht verarbeitet wurde . Der Akteurparameter gibt an, welche Rollen den Header verarbeiten müssen. Ich verstehe ihn hier nicht sehr genau, daher ist es schwer zu sagen.

Java-Code

$file = $this->getSoapWSDL();

$client = new SoapClient($file);//url kann über die zugegriffen werden Browser, kann nicht durch direkten Aufruf gelöst werden

$param = array('userID' => 'test', 'merchantID' => 'test');

$returnSt = $ client-> ;checkUser($param);

print_r($returnSt->checkUserResult>

public function getSoapWSDL()

{ // Die URL-Datei regelmäßig lokal speichern

DS 'shengda' if (time() > filemtime($file) + 7 * 86400) {

$url = "http://jf.sdo.com/ExchangeScore/ExchangeService.asmx?WSDL";

include_once(BP . DS . "lib/Snoopy.class.php");

$snoopy = new Snoopy;

$snoopy->fetch($url); / Alle Inhalte abrufen

$snoopy->read_timeout = 4;

$wsdl = $snoopy->results;

if ($snoopy-& gt;status == '200' && !$snoopy->timed_out) {

if (!is_dir(dirname($file))) {

mkdir(dirname($file)); 🎜>.

                                                                              $file;

}

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie man PHP und SOAP verwendet, um den Aufruf und die Entwicklung von Webdiensten zu implementieren Wie man PHP und SOAP verwendet, um den Aufruf und die Entwicklung von Webdiensten zu implementieren Jun 25, 2023 am 09:59 AM

Im Bereich der Webentwicklung sind Webdienste eine sehr wichtige Technologie, die es verschiedenen Anwendungen ermöglicht, miteinander zu kommunizieren, um komplexere und leistungsfähigere Systeme aufzubauen. In diesem Artikel werfen wir einen detaillierten Blick auf die Verwendung von PHP und SOAP zur Implementierung des Aufrufs und der Entwicklung von Webdiensten. SOAP (SimpleObjectAccessProtocol) ist ein XML-basiertes Protokoll, das für den Informationsaustausch zwischen verschiedenen Anwendungen verwendet wird. SOAP ist ein wichtiger Webdienststandard

PHP und SOAP: So implementieren Sie Remote Procedure Calls (RPC) PHP und SOAP: So implementieren Sie Remote Procedure Calls (RPC) Jul 29, 2023 pm 02:45 PM

PHP und SOAP: So implementieren Sie Remote Procedure Call (RPC) Einführung: In den letzten Jahren wurde Remote Procedure Call (RPC) mit dem Aufkommen verteilter Systeme in der Webentwicklung weit verbreitet. In diesem Artikel wird die Implementierung von RPC mit PHP und SOAP vorgestellt und die Verwendung anhand von Codebeispielen demonstriert. 1. Was ist ein Remote Procedure Call (RPC)? Der Remote-Prozeduraufruf (RemoteProcedureCall, RPC) ist eine Kommunikation

PHP und SOAP: So erreichen Sie eine synchrone und asynchrone Verarbeitung von Daten PHP und SOAP: So erreichen Sie eine synchrone und asynchrone Verarbeitung von Daten Jul 28, 2023 pm 03:29 PM

PHP und SOAP: So implementieren Sie die synchrone und asynchrone Verarbeitung von Daten. Einführung: In modernen Webanwendungen wird die synchrone und asynchrone Verarbeitung von Daten immer wichtiger. Unter synchroner Verarbeitung versteht man die Verarbeitung jeweils nur einer Anforderung und das Warten auf den Abschluss der Anforderung, bevor die nächste Anforderung verarbeitet wird. Unter asynchroner Verarbeitung versteht man die gleichzeitige Verarbeitung mehrerer Anforderungen, ohne auf den Abschluss einer bestimmten Anforderung zu warten. In diesem Artikel stellen wir vor, wie Sie mit PHP und SOAP eine synchrone und asynchrone Datenverarbeitung erreichen. 1. Einführung in SOAP SOAP (SimpleObject

SOAP-Protokollhandbuch in PHP SOAP-Protokollhandbuch in PHP May 20, 2023 pm 07:10 PM

Mit der kontinuierlichen Weiterentwicklung der Internettechnologie müssen immer mehr Anwendungen auf Unternehmensebene Schnittstellen zu anderen Anwendungen bereitstellen, um die Interaktion von Daten und Unternehmen zu realisieren. In diesem Fall benötigen wir ein zuverlässiges Protokoll zur Datenübertragung und zur Gewährleistung der Datenintegrität und -sicherheit. SOAP (Simple Object Access Protocol) ist ein XML-basiertes Protokoll, das zur Implementierung der Kommunikation zwischen Anwendungen in einer Webumgebung verwendet werden kann. Als beliebte Web-Programmiersprache gilt PHP

Analysieren von SOAP-Nachrichten mit Python Analysieren von SOAP-Nachrichten mit Python Aug 08, 2023 am 09:27 AM

Analysieren von SOAP-Nachrichten mit Python SOAP (Simple Object Access Protocol) ist ein XML-basiertes RPC-Protokoll (Remote Procedure Call), das zur Kommunikation zwischen verschiedenen Anwendungen im Netzwerk verwendet wird. Python bietet viele Bibliotheken und Tools zum Verarbeiten von SOAP-Nachrichten. Die am häufigsten verwendete davon ist die Suds-Bibliothek. suds ist eine SOAP-Client-Bibliothek für Python, die zum Parsen und Generieren von SOAP-Nachrichten verwendet werden kann. Es bietet eine einfache und

So verwenden Sie PHP und SOAP zum Bereitstellen und Veröffentlichen von Webdiensten So verwenden Sie PHP und SOAP zum Bereitstellen und Veröffentlichen von Webdiensten Jul 28, 2023 pm 01:57 PM

So verwenden Sie PHP und SOAP zum Bereitstellen und Veröffentlichen von Webdiensten. Einführung: Im heutigen Internetzeitalter ist die Bereitstellung und Veröffentlichung von Webdiensten zu einem sehr wichtigen Thema geworden. PHP ist eine beliebte serverseitige Programmiersprache, während SOAP (Simple Object Access Protocol) ein XML-Protokoll ist, das für die Kommunikation zwischen Webdiensten verwendet wird. In diesem Artikel erfahren Sie, wie Sie PHP und SOAP zum Bereitstellen und Veröffentlichen von Webdiensten verwenden, und stellen einige Codebeispiele bereit.

So komprimieren und dekomprimieren Sie Daten mit PHP und SOAP So komprimieren und dekomprimieren Sie Daten mit PHP und SOAP Jul 29, 2023 pm 12:28 PM

So verwenden Sie PHP und SOAP zum Komprimieren und Dekomprimieren von Daten. Einführung: In modernen Internetanwendungen ist die Datenübertragung ein sehr häufiger Vorgang. Mit der kontinuierlichen Entwicklung von Internetanwendungen nehmen jedoch das Datenvolumen und die Anforderungen an die Übertragungsgeschwindigkeit zu Der Einsatz von Datenkomprimierungs- und Dekomprimierungstechniken ist zu einem sehr wichtigen Thema geworden. In der PHP-Entwicklung können wir das SOAP-Protokoll (SimpleObjectAccessProtocol) verwenden, um Datenkomprimierung und -dekomprimierung zu erreichen. Dieser Artikel zeigt Ihnen, wie es geht

PHP und SOAP: Umgang mit der Prüfsummenkorrektur von Daten PHP und SOAP: Umgang mit der Prüfsummenkorrektur von Daten Jul 28, 2023 pm 01:53 PM

PHP und SOAP: Umgang mit der Datenprüfsummenkorrektur Einführung: Im Internetzeitalter werden Dateninteraktion und -verarbeitung immer wichtiger. In Webanwendungen verwenden wir normalerweise SOAP (Simple Object Access Protocol) für die Dateninteraktion. Im Prozess der Dateninteraktion kommt der Datenüberprüfung und -korrektur eine besondere Bedeutung zu. In diesem Artikel wird die Verwendung von PHP und SOAP zur Datenüberprüfung und -korrektur bei der Dateninteraktion vorgestellt und detaillierte Codebeispiele gegeben. 1. Die Bedeutung der Datenüberprüfung Die Datenüberprüfung besteht darin, die Richtigkeit und Vollständigkeit der Daten sicherzustellen.

See all articles