Heim >Backend-Entwicklung >PHP-Tutorial >Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

WBOY
WBOYOriginal
2016-07-30 13:29:261036Durchsuche

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:

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

extension=php_soap.dll

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

extension=php_soap.dll

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

classtest{

    functiondemo(){

        return'hello word';

    }

}

//开始创建webservice

//null可传入ip,第二个参数类Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp84;于授权标识,调用时会用到

$webService= newSoapServer(null,array('uri'=>'test.php'));

//设置需要提供的类,setClass不难理解吧?

$webService->setClass('test');

$webService->handle();

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp. Da das integrierte PHP5 keine Soap-Unterstützungsdateien einführen muss, können Sie es erstellen Die Zugriffsadresse wird beispielsweise direkt auf 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 gesetzt.

0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

3

4

5

6

7

$client= newSoapClient(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',

    "uri"      => 'test.php'//请求标识,服务器和客户端必须对应

));

//至此,便可调用类里面的方法了

$demo= $client->demo();

var_dump($demo);

03040506070809Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp
classtest{ functiondemo(){ 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= newSoapServer(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();
An diesem Punkt wird der Soap-Server erstellt. Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp. Rufen Sie den gerade erstellten Soap-Dienst auf. Da das integrierte PHP5 keine Soap-Unterstützungsdateien einführen muss, kann es direkt aufgerufen werden.
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= newSoapClient(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- &gt ;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

//引入nusoap支持类库

require_once('lib/nusoap.php');

$soap= newsoap_server();

$soap->configureWSDL('test');

//这里要说明一下register这个函数,第一个参数是需要调用的方法,第二个参数是传入的数据,第三个参数是传出的数据。

$soap->register('GetTestStr',

        array("name"=> "xsd:string"), // 参数,默认为 "xsd:string"

        array("return"=> "xsd:string")

        );

$HTTP_RAW_POST_DATA= isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA: '';

$soap->service($HTTP_RAW_POST_DATA);

0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0304050607 0809Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation 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 Klassenbibliothekrequire_once('lib/nusoap.php');<code>$soap= newsoap_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

<?php

/**

 * nusoap扩展类

 * Email:zhangyuan#tieyou.com

 * @author hkshadow

 */

//引入nusoap基类

require_once('pto/nusoap/nusoap_new/lib/nusoap.php');

classnuSoapApi extendsnusoap_client{

    private$_strSoapUrl= '';//wsdl url

    private$_strSoapDefenCoding= 'utf-8'; // 当前请求的HTTP内容类型的字符集。默认utf-8

    private$_strXmlEnCoding= 'utf-8';//传入消息的字符集编码(响应)。默认utf-8

    private$_arrParam= array(); //arrData

    private$_objSoap= null; //初始化Nusoap对象

    

    /**

     * 构造函数

     * @param str $_strSoapUrl

     * @param 可选,默认为wsdl $_strSoapWsdl

     */

    publicfunction__construct($_strSoapUrl,$_strSoapWsdl= true){

        if($this->_objSoap === null){

            $this->_objSoap = newnusoap_client($_strSoapUrl,$_strSoapWsdl);

        }

    }

    

    /**

     * 设置消息数据

     * @param array $arrData

     */

    publicfunctionsetArrParam($arrData){

        $this->_arrParam = $arrData;

    }

    

    /**

     * 设置xml编码

     * @param true / false $bool

     */

    publicfunctionsetDeCodeUtf8($bool= false){

        $this->_objSoap->decode_utf8 = $bool;

    }

     

    /**

     * 设置http内容类型的字符编码

     * @param str $strCode

     */

    publicfunctionsetSoapDefenCoding($strCode){

        if(!empty($strCode)){

            $this ->_objSoap->soap_defencoding = $strCode;

        }else{

            $this->_objSoap->soap_defencoding = $this->_strSoapDefenCoding;

        }

    }

    publicfunctionsetXmlEnCoding($strCode){

        if(!empty($strCode)){

            $this->_objSoap->xml_encoding = $strCode;

        }else{

            $this->_objSoap->xml_encoding = $this->_strXmlEnCoding;

        }

    }

     

    /**

     * 获取数据

     */

    publicfunctiongetRequestData($fun){

        $arrData= array();

        $arrData= $this->_objSoap->call($fun,$this->_arrParam);

        return$arrData;

    }

    /**

     *  数组转对象

     * @param array $arrData

     */

    publicfunctionarrDataObj($arrData){

        //引用地址,而非引用拷贝

        $objStdClass= newstdClass();

        foreach($arrDataas$key=>$value){

            if(is_array($value)){

                $objStdClass->$key= $this->arrDataObj($value);

            }else{

                $objStdClass->$key= $value;

            }

        }

        return$objStdClass;

    }

}

?>

Starten Sie hier den Aufruf des Ausführungsprozesses:

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

//定义webservice的请求url

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');

//引入刚刚封装的类

require_once('lib/class.nuSoapApi.php');

//调用nusoap扩展类

$client= newNusoapApi(SERVICEDTS_WEBSERVER_URL,true);

$client->setSoapDefenCoding('utf-8');

$client->setDeCodeUtf8(false);

$client->setXmlEnCoding('utf-8');

$paras= array('name'=> 'hkshadow');

$client->setArrParam($paras);

$result= $client->getRequestData('GetTestStr');

if(! $err= $client->getError ()) {

    echo" 返回结果: ", $result;

} else{

    echo" 调用出错: ", $err;

}

//输出Hello, { hkshadow } !

0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp03040506070809 Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp3Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp4Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp5Kommunikation 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 webServicephp8Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp9
//Definieren Sie die Anforderungs-URL des Webservicedefine('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 classrequire_once('lib/class.nuSoapApi.php'); code> code><code>//Nusoap-Erweiterungsklasse aufrufen$clientnew 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
WSDL ist eine XML-Sprache, die zur Beschreibung von Webdiensten verwendet wird. Es handelt sich um ein maschinenlesbares Format, das dem Webdienst-Client alle für den Zugriff auf den Dienst erforderlichen Informationen bereitstellt. NuSOAP bietet speziell eine Klasse zum Parsen von WDSL-Dateien und zum Extrahieren von Informationen daraus. Das Soapclient-Objekt verwendet die WSDL-Klasse, um Entwicklern das Aufrufen von Diensten zu erleichtern. Durch die Erstellung der Nachricht mithilfe von WSDL-Informationen muss der Programmierer lediglich den Namen und die Parameter der Operation kennen, um sie aufzurufen.

Die Verwendung von WSDL über NuSOAP bietet die folgenden Vorteile:
Alle Dienstmetadateien, wie Namespaces, Endpunkt-URLs, Parameternamen usw., können direkt aus der WSDL-Datei abgerufen werden, was dem Client eine dynamische Nutzung ermöglicht Anpassung an serverseitige Änderungen. Da diese Daten immer vom Server verfügbar sind, müssen sie nicht mehr in Benutzerskripten fest codiert werden.
Es ermöglicht uns die Verwendung der Soap_proxy-Klasse. Diese Klasse ist von der Soapclient-Klasse abgeleitet und fügt Methoden hinzu, die den in der WDSL-Datei beschriebenen Vorgängen entsprechen. Jetzt können Benutzer diese Methoden direkt aufrufen.
Die Soapclient-Klasse enthält eine getProxy()-Methode, die ein Objekt der Soap_proxy-Klasse zurückgibt. Die Klasse „soap_proxy“ ist von der Klasse „soapclient“ abgeleitet, fügt Methoden hinzu, die den im WSDL-Dokument definierten Vorgängen entsprechen, und ermöglicht dem Benutzer den Aufruf der Remote-Methode eines Endpunkts. Dies gilt nur, wenn das Soapclient-Objekt mit einer WDSL-Datei initialisiert wird. Der Vorteil liegt in der Benutzerfreundlichkeit, der Nachteil in der Leistung – das Erstellen von Objekten in PHP ist zeitaufwändig – und diese Funktionalität dient keinem praktischen Zweck.

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

//调用nusoap扩展类

$client= newNusoapApi(SERVICEDTS_WEBSERVER_URL,true);

$client->setSoapDefenCoding('utf-8');

$client->setDeCodeUtf8(false);

$client->setXmlEnCoding('utf-8');

$paras= array('name'=> 'hkshadow');

$client->setArrParam($paras);

//      $result = $client->getRequestData('GetTestStr');

//生成proxy类

$proxy= $client->getProxy();

//调用远程函数

$sq= $proxy->GetTestStr('Bruce Lee');

if(!$err=$proxy->getError()) {

    print_r($sq);

} else{

    print"ERROR: $err";

}

print'REQUEST:<xmp>'.$p->request.'</xmp>';

print'RESPONSE:<xmp>'.str_replace('><code>, ">n<code>, $p->response).'</xmp>';

0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp 03040506070809Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp3Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp4Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp5Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp6Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp7Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp8Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp9Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp0Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp
/ /Call nusoap extension class$client= newNusoapApi(SERVICEDTS_WEBSERVER_URL,true); $client->setSoapDefenCoding('utf-8'); code> code><code>$client->setDeCodeUtf8(false);$client ->setXmlEnCoding('utf-8');$paras = array('name'=> 'hkshadow');$client->setArrParam($paras) ;// $result = $client->getRequestData('GetTestStr');//Proxy-Klasse generieren<code>$proxy= $client->getProxy(); //Fernfunktion aufrufen$sq= $proxy ->GetTestStr('Bruce Lee');if(! code>$err=$proxy->getError()) { print_r($sq);} else{ print"ERROR: $err" ;}print'REQUEST:<xmp>' .$p->request.''; print'RESPONSE:<xmp>'</xmp>.str_replace('><code>, ">n<code>, $p->response). '</xmp>';

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.
Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

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.

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

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:

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp

3

4

$client= newnusoap_client("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",true);   

$client->soap_defencoding = 'utf-8';

$client->decode_utf8 = false;

$client->xml_encoding = 'utf-8';

Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephpKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp


3

4



$client= newnusoap_client("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",true);

$client->soap_defencoding = 'utf-8';

$client->decode_utf8 = false;

$client->xml_encoding = 'utf-8'

Der Dateicode darf keine Ausgabe haben, andernfalls wird beim Aufruf ein Fehler ähnlich dem folgenden gemeldet: XML-Fehler beim Parsen der SOAP-Payload in Zeile x (Zeilennummer): Reservierter XML-NameWenn PHP5 aktiviert ist. Wenn bei Verwendung von integriertem Soap ein Konflikt zwischen der SoapClient-Klasse von Nusoap und der integrierten SOAP-Klasse von PHP5 besteht (ich habe hier keine solche Situation, beide sind gleichzeitig geöffnet): LösungKommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp. Ändern Sie php.ini so, dass die integrierte PHP5-Soap-Erweiterung (php_soap.dll unter Windows) nicht geladen wird. Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp. Einige Leute haben auch die SoapClient-Klasse von nusoap umbenannt. An diesem Punkt ist Webservice eine Lösung, egal ob es sich um die integrierte Soap in PHP5 oder die Nusoap-Erweiterungsklasse handelt. Wie aus einigen der obigen Beispiele hervorgeht, ist Nusoap flexibler und einfacher Webservice Für die Kommunikation ist die in PHP5 integrierte Soap schneller, egal für welche Sie sich entscheiden, wählen Sie einfach eine aus. Ursprüngliche Adresse: Kommunikation zwischen Soap- und Nusoap-Server und -Client unter http://www.mudbest.com/webservicephp/ Das Obige stellt die Kommunikation zwischen dem Soap- und Nusoap-Server und dem Client von webServicephp vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.
Stellungnahme:
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