PHP Tutorial: Eigene Web Services mit PHP5 bereitstellen? Kein Problem!PHP5 bietet das nötige Rüstzeug, um bequem und schnell den eigenen Web Service auf die Beine zu stellen.
6
![]() 7 Öffnen Sie nun die Datei "soap_client_getattrib.html" mit dem Mozilla Firefox Browser über "Datei öffnen". Sie werden dann darum gebeten, Ihr Einverständnis für die Ausführung des Soap Aufrufs zu erteilen. Warten Sie ein paar Sekunden und klicken Sie dann auf "Allow". Nun müssten Sie folgendes als Ausgabe erhalten:
[object SOAPPropertyBag] Empfangen: Inhalt 1 Inhalt 2 Inhalt 3 Inhalt 4 Inhalt 5 Wenn wir nun die Datei nicht über die "Datei öffnen" Funktion des Browsers, sondern über http://localhost/... aufgerufen hätten, dann wären die Sicherheitseinstellungen von Mozilla Firefox auf den Plan gerufen worden und der Client hätte keine Antwort vom Soap Server erhalten. Das ist auch vollkommen in Ordnung, denn ein Webserver soll dem Client keinen Soap Code unterjubeln können, der dann beliebig Daten nachlädt. Der Aufruf "BlasterSoapClient.invoke('getAttributesClass',new Array(0));" bewirkt, dass der Client (sprich Mozilla Firefox) wartet, bis vom Server eine Rückmeldung kam. Daher ist die Verwendung von invoke auch nur dann zu empfehlen, wenn nicht viele Daten hin und her transportiert werden sollen (z.B. Login Prozeduren). Für grössere Datenmengen empfiehlt sich der Aufruf der Funktion "BlasterSoapClient.asyncInvoke(funktion,argumente,callbackfunktion)". Der asynchrone Aufruf bewirkt, dass das Skript normal weiterläuft. Zur Behandlung der empfangenen Daten wird jedoch eine Callback Funktion benötigt, die dem Funktionsaufruf mitgegeben wird. Da bei Javascript Funktionen bereits Objekte sind, können wir die Funktione direkt als Parameter an "BlasterSoapClient.asyncInvoke" übergeben. Für das Beispiel des asynchronen übertragens von Daten mit Soap öffnen Sie eine leere Datei und speichern Sie diese als "soap_client_getattrib_async.html" ab (im gleichen Ordner wie "soap_client_getattrib.html"). Kopieren Sie folgenden Code in die Datei und speichern: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Ein Soap Client in Javascript</title> <!-- Die Soap Klasse einbinden --> <script type="text/javascript" src="BlasterSoapClient.js"></script> </head> <body> <script> // neue Instanz des Soap Clients erzeugen var soapClient = new BlasterSoapClient(); // Webpfad zum SoapServer soapClient.transportURI = 'http://localhost/soap_server.php'; try{ // Parameter Array erzeugen. Da wir keine Parameter in der Funkion des Soap Servers erwarten, hat das Array die länge null. var p = new Array(0); // Aufruf (invoke) der Funktion MySoapClass::getAttributesClass() auf dem SoapServer (asynchron) soapClient.asyncInvoke('getAttributesClass',p,callbackHandler); } catch(e) { alert(e); } // der Rückruf Handler für asyncInvoke function callbackHandler (results) { if (!results) { return; } var params = results.getParameters(false,{}); var attributesClass = params[0].value; alert(attributesClass+'n' + 'Empfangen:n' + attributesClass.attrib1+'n' + attributesClass.attrib2+'n' + attributesClass.attrib3+'n' + attributesClass.attrib4+'n' + attributesClass.attrib5+'n'); }; </script> </body> </html>
|
Über den Autor
Tutorial bewertenHat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend". aktuelle Artikel
|