Tutorials - Entwicklung - Webservices mit PHP und NuSOAP - Fehlerbehandlung und Parameterübergabe -

Entwicklung: Webservices mit PHP und NuSOAP - Fehlerbehandlung und Parameterü...

rob (59)

rob

12.08.2002 00:42

Vinn

  • 323 Postings, noch 27 bis zum nächsten Level (350)

Postings: 323

Webservices mit PHP und NuSOAP - Fehlerbehandlung und Parameterübergabe -

Montag, 05. Januar 2004 23:19

  • 0.0/6 Votes: 0
0.0/6 Votes: 0

Server-Funktionen mit Übergabe-Parameter
jetzt wollen wir uns mal Funktionen für den Soap-Server ansehen, bei dem Parameter beim Aufruf des Webservices verwendet werden.

//hier wird als Parameter ein String erwartet:
function sGetLoginName($sName){
return "Hallo, ". $sName;
}

//und hier mal ein Array als Übergabeparameter:
function Login($aUserData){
if($aUserData['Passwort'] == '123')
{
return "Hallo, ".$aUserData['Vorname']." ".$aUserData['Name'];
}
else
{
return "falsches Passwort!!";
}
}

noch nichts aufregendes bisher (eigentlich ganz normale Funktionen),
aber was ist mit der Fehlerbehandlung - was passiert wenn kein oder ein falscher Parameter übergeben wird?

Serverseitige Fehlerbehandlung
um einen SOAP-Fehler auszugeben gibt es das Objekt vom Typ soap_fault, hierzu müssen 3 Parameter übergeben werden.
- der Fehlertyp als String (Client, Server, MustUnderstand oder VersionMismatch)
- der Fehlerverursacher als String (kann man auch leer lassen)
- die Fehlermeldung als String

dann könnte eine Funktion folgendermaßen aussehen:

function sGetLoginName($sName){
if(trim($sName == '') || $sName == null)
{
return new soap_fault(
"Client",
"",
"der Name fehlt!!"
);
}
else
{
return "Hallo, ". $sName;
}
}

Client-Aufruf des Webservices mit Parameterübergabe
wenn jetzt eine Funktion aufgerufen wird, die einen Übergabeparameter erwartet, geschieht dieses mit der Methode call().
Die Methode call() erwartet dann als ersten Parameter den Namen der Webservice-Funktion und als zweiten Parameter die Übergabeparameter an die gewählte Funktion.
Wichtig ist hierbei das die Übergabe-Parameter für die Funktion als Array übergeben werden müssen.

$sLoginName = $oSoapClient->call('sGetLoginName', array('sName' => 'Bytefresser'));
oder
$aUserData = array(
'Name' => 'Bytefresser',
'Vorname' => 'Rob',
'Passwort' => '123'
);
$sLoginName = $oSoapClient->call('Login', array($aUserData));

um jetzt auch eventuelle Fehler ausgeben zu können, muss noch die Methode getError() aufgerufen werden, welche dann die entsprechende Fehlermeldung liefert.

das Skript für einen Client könnte dann folgendermaßen aussehen:

<?php
require_once('nusoap.php');
$oSoapClient = new soapclient('http://meineadresse/soap_server.php');
$sLoginName = $oSoapClient->call('sGetLoginName', array('sName' => 'Bytefresser'));

if($sError = $oSoapClient->getError()){
echo "Fehler: ". $sError;
}
else{
echo $sLoginName;
?>

weitere Beiträge zum Thema PHP/NuSOAP:

Einführung
WSDL-Support

Zuletzt editiert:Dienstag, 06. Januar 2004 23:26
Bookmark setzen!:Zu Google Bookmark hinzufügen.Zu bloglines hinzufügen.Zu Newsgator hinzufügen.Zu FURL hinzufügen.Zu DIGG hinzufügen.Zu Webnews hinzufügen.Zu Netscape hinzufügen.Zu Yahoo MyWeb hinzufügen.Zu spurl.net hinzufügen.Zu diigo hinzufügen.Zu Newsvine hinzufügen.Zu del.icio.us hinzufügen.Zu SIMPIFY hinzufügen.Zu Mister Wong hinzufügen.Zu Linkarena hinzufügen.Zu isio.de hinzufügen.Zu Oneview hinzufügen.Zu yigg.de hinzufügen.Zu reddit hinzufügen.Zu StumbleUpon hinzufügen.Zu Slashdot hinzufügen.Zu Blinklist hinzufügen.Zu Technorati hinzufügen.Zu Blogmarks hinzufügen.Zu Blinkbits hinzufügen.Zu ma.gnolia hinzufügen.Zu smarking.com hinzufügen.Zu Netvouz hinzufügen.Zu co.mments hinzufügen.Zu Connotea hinzufügen.Zu de.lirio.us hinzufügen.

Specials

Bytefresser Specials: Anno 1404

Umfrage

Welches ist Dein Lieblings-Anno?

(169 Stimmen)

1. Ganz klar: Anno 1800!
2. Anno 2205
3. Anno 2070
4. Anno 1404
5. Anno 1701
6. Anno 1503
7. Anno 1602
8. Anno Online

Benutzer-Counter

Besucher gesamt: 1.790.091
Besucher heute: 1.487
Besucher gestern: 2.419
Max. Besucher/Tag: 14.744
Gerade online: 21
Max. online: 314
Seiten gesamt: 41.792.463
Aufrufe diese Seite: 4.797

Tag-Cloud

  soap-server     aufruf     soap-fehler     tutorials     bytefresser     fehlerbehandlung     passwort     parameterü     nusoap     zuletzt     level     serverseitige     thema     entwicklung     übergeben     webservices     login     objekt     methode     wsdl-support     Übergabeparameter     array     fehler     server-funktionen     vorname     postings     montag     parameterübergabe     funktionen     januar