Heim >Backend-Entwicklung >PHP-Tutorial >Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp
PHP SOAP Server
Es ist sehr einfach, einen SOAP-Server mit PHP und Soap einzurichten. Im Grunde schreiben Sie einfach die Funktionen, die Sie Ihrem Webdienst zur Verfügung stellen möchten, und registrieren sie dann bei Soap. Darüber hinaus sind zwei Schritte erforderlich, um die Einrichtung des PHP-SOAP-Servers abzuschließen. Zuerst müssen Sie eine Instanz des Soap-Objekts in Ihrem PHP-Code erstellen und dann die HTTP-POST-Methode verwenden, um die Originaldaten zur Verarbeitung an Soap zu übergeben
Soap ist seit PHP5 integriert und die Verwendung von SOAP ist relativ einfach. Die am häufigsten verwendeten Klassen sind SoapServer und SoapClient, wobei SoapServer zum Erstellen eines Webservice-Servers und SoapClient zum Aufrufen von Webservice, dem Client, verwendet wird. Da Soap von PHP5 integriert wird, müssen Sie nur die Soap-Komponente in php.ini aktivieren.
Nehmen Sie Fenster als Beispiel:
|
|
Soap-Instanz:
0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 03 04 05 06 07 08 09 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp |
|
0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp
|
class test{ function demo(){ return ' Hallo Wort' ; } } //Webservice erstellen //null kann in IP übergeben werden, der zweite Parameter ähnelt der Autorisierungs-ID, die verwendet wird beim Aufruf<code>$webService = new SoapServer(null, array<code>( 'uri' => 'test.php' ) );<code>//Das Festlegen der Klasse, die bereitgestellt werden muss, ist nicht schwer zu verstehen, oder? $webService ->setClass( 'test' ); $webService ->handle();
|
Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 34567 |
$client = new SoapClient(null, array ( "location" => 'http://Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp7.0.0.Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp/test.php'<code>, "uri"
=> 'test.php' ,
//Anforderungsidentifikation, Server und Client müssen übereinstimmen )); //Das ist Damit können Sie die Methoden in der Klasse aufrufen $demo = $client - > ;demo(); var_dump( $demo );
|
Nusoap ist jedoch flexibler als Seife. Ihre Betriebsabläufe sind im Wesentlichen gleich, es gibt jedoch geringfügige Abweichungen im Verarbeitungsprozess. Die am häufigsten verwendeten Klassen sind jedoch relativ einfach sind Soap_server und nusoap_client, Soap_server wird zum Erstellen des Webservice-Servers verwendet und die Klasse nusoap_client wird zum Aufrufen des Webservice verwendet, der der Client ist. Die Definitionen dieser beiden Klassen befinden sich in lib/nusoap.php, daher müssen wir beim Erstellen oder Aufrufen des Webservice-Schnittstellenprogramms auf diese Datei verweisen.
NuSoap ist ein WebService-Programmiertool in einer PHP-Umgebung, das zum Erstellen oder Aufrufen von WebService verwendet wird. Es handelt sich um eine Open-Source-Software, bei der es sich um eine Reihe von PHP-Klassen handelt, die vollständig in PHP-Sprache geschrieben sind und SOAP-Nachrichten über HTTP senden und empfangen. Sie wurde von der NuSphere Corporation (http://dietrich.ganx4.com/nusoap/) entwickelt. Ein Vorteil von NuSOAP besteht darin, dass keine Unterstützung für Erweiterungsbibliotheken erforderlich ist. Diese Funktion ermöglicht die Verwendung von NuSoap in allen PHP-Umgebungen und wird nicht von den Sicherheitseinstellungen des Servers beeinflusst.
Nusoap-Download bereitstellen: nusoap-0.9.5
Nusoap-Instanz:
Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp. Als Erstes muss noch der Server erstellt werden Gerade erwähnt, erstellen Sie dies auf der Serverseite und stellen Sie zunächst die Nusoap-Unterstützungsklassenbibliothek vor
0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 03 04 05 06 07 08 09 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp |
|
//Wir stellen vor nusoap-Unterstützung Klassenbibliothek
require_once
(
'lib/nusoap.php'
);<code>$soap
=
new
soap_server();
$soap->configureWSDL(
'test'
);
// Hier müssen wir die Registerfunktion erklären. Der erste Parameter ist die Methode, die aufgerufen werden muss, der zweite Parameter sind die eingehenden Daten und der dritte Parameter sind die ausgehenden Daten.
$soap
->register(
'GetTestStr'
,
array
(
"name"
=>
"xsd:string"
),
// Parameter, Standard ist „xsd:string“
>"return"
=> /code>"xsd:string"
)
);
$HTTP_RAW_POST_DATA
= isset(
$HTTP_RAW_POST_DATA
)?
$HTTP_RAW_POST_DATA
:
''
;
$soap->service(
$HTTP_RAW_POST_DATA
);
Zu diesem Zeitpunkt wurde der Nusoap-Server erstellt, vorausgesetzt, die Adresse lautet http://Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp7.0.0.Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp/test.php.
Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp. Nusoap anrufen. Vorher habe ich es hier gekapselt. Die Datei ist class.nuSoapApi.php und der Code lautet wie folgt.
0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 03 04 05 06 07 08 09 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp3 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp4 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp5 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp6 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp7 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp8 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp9 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp3 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp4 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp5 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp6 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp7 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp8 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp9 30 3Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 3Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 33 34 35 36 37 38 39 40 4Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 4Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 43 44 45 46 47 48 49 50 5Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 5Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 53 54 55 56 57 58 59 60 6Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 6Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 63 64 65 66 67 68 69 70 7Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 7Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 73 74 75 76 77 78 79 80 8Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 8Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 83 84 85 86 87 88 89 90 |
|
Starten Sie hier den Aufruf des Ausführungsprozesses:
|
//Definieren Sie die Anforderungs-URL des Webservice define('SERVICEDTS_WEBSERVER_URL' ,
'http://Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp7.0.0.Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp/test.php?wsdl' ); //Führen Sie das gerade gekapselte ein class require_once ( 'lib/class.nuSoapApi.php' ); code> code><code>//Nusoap-Erweiterungsklasse aufrufen $client new NusoapApi(SERVICEDTS_WEBSERVER_URL,true);$client ->setSoapDefenCoding( 'utf-8' code> <code>); $client ->setDeCodeUtf8(false); $client ->setXmlEnCoding( 'utf-8' ); $paras code>array ( 'name' => 'hkshadow ' ); $client ->setArrParam( $paras ) ; $result $client ->getRequestData( 'GetTestStr' ); if (! $err $client ->getError ()) { echo " Rückgabeergebnis: " , $result } echo " Aufruffehler: " , $err //Ausgabe Hallo, { hkshadow } ! Erklärung: WSDL Die Verwendung von WSDL über NuSOAP bietet die folgenden Vorteile:
Führen Sie die soeben erstellte Server-URL aus, http://Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp7.0.0.Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp/test.php. Die Ergebnisse nach der Ausführung sind wie folgt. Klicken Sie auf den Methodennamen. Auf diese Weise stellen wir durch das Hinzufügen einiger Codezeilen zum Dienst mithilfe von NuSOAP ein visuelles Dokument für den Dienst bereit. Aber das ist nicht alles, was wir tun können. Wir fügen dem Dienst einige WSDL-Aufrufe hinzu, indem wir NuSOAP verwenden. Wir können WSDL und einige andere Dokumente für den Dienst generieren. Im Gegensatz dazu können wir im Client nicht viel tun, zumindest in unserem einfachen Beispiel. Der unten gezeigte Client unterscheidet sich nicht von dem Client, der kein WSDL verwendet. Der einzige Unterschied besteht darin, dass das Parsen der Soapclent-Klasse durch die Bereitstellung der URL des WSDL statt des Dienstendpunkts wie zuvor erfolgt. NuSoap kann die Codierung beim Aufruf von WebService festlegen. Die Lösung für verstümmelte Zeichen lautet wie folgt:
|