Warning: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php on line 58
Eigene Web Services mit PHP5 bereitstellen? Kein Problem! PHP Tutorials nicht nur für Anfänger php-resource.de

php-resource.de

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.

|01.05.2005 | beebob | 32432 | KAT : PHP | | Kommentare 0


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>
Navigation -> Seitenanzahl : (7)

  «  1 2 3 4 5 6 7  » 
Kommentare zum Tutorial
Tutorial kommentieren
 
Über den Autor
beebob

beebob

Status
Premium Mitglied

Beruf
Unbekannt

Mitglied seit:
30.04.2009

letzte Aktivität
04.06.2009

 

Tutorial bewerten

Hat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend".



 

aktuelle Artikel

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Neu | Berni

Wissensbestand in Unternehmen

Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Neu | Berni