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 | 33131 | KAT : PHP | | Kommentare 0


4

7

Der Soap Client

Um den Rahmen dieses Tutorials nicht zu sprengen, liegt Ihnen eine vorgefertigte und einfach zu verwendende Javascript Klasse zur Steuerung des Soap Clients vor. Diese Klasse habe ich im Rahmen meines CM Frameworks erstellt, um bequemer Anfragen an den Soap Server stellen zu können.

Öffnen Sie eine leere Datei und speichern Sie diese als "BlasterSoapClient.js" ab. Allerdings brauchen Sie dies nicht im Document Root zu tun. Sie erfahren später wieso. Kopieren Sie folgenden Code in die Datei und speichern:

/**
* The SoapClient Class
*/
function BlasterSoapClient() {
        this.transportURI = '';
        this.urn = 'urn:noxmethods';    
        this.enablePrivilege = 'UniversalBrowserRead';
}  

/*
*    Method BlasterSoapClient::asyncInvoke() does not halt script when receiving result!
*/
BlasterSoapClient.prototype.asyncInvoke = function (method,args,callback){
    try {
        netscape.security.PrivilegeManager.enablePrivilege(this.enablePrivilege);
    } catch (e) {
        alert(e);
        return false;
    }
    
    var soapCall = new SOAPCall();
    var prot = BlasterSoapClient.prototype;
    
    soapCall.transportURI = this.transportURI;
    
    var params = new Array(args.length);
    for(i=0;i<args.length;i++){
        params[i] = new SOAPParameter(args[i],'')
    }
    
    soapCall.encode(0, method, this.urn, 0, null, params.length, params);
    
    soapCall.asyncInvoke(
      function (response, soapcall, error)
       {
          var r = prot.handleSOAPResponse(response,soapcall,error);
          callback(r);
        }
    );
};
 
/*
*    Response handler for BlasterSoapClient::asyncInvoke()
*/
BlasterSoapClient.prototype.handleSOAPResponse = function (response,call,error)
{
    if (error != 0)
    { 
        throw "Service failure";
    } else 
    {
        var fault = response.fault; 
        if (fault != null) { 
            var code = fault.faultCode; 
            var msg = fault.faultString; 
            throw "SOAP Fault:nn" +
                "Code: "  + code +
                "nnMessage: " + msg
        } else 
        {
            return response;
        }
    }
    
    throw "Failure";
};

/*
* When using this, all scripts will halt until result could be retrieved
*/
BlasterSoapClient.prototype.invoke = function (func, args) 

      try {
          netscape.security.PrivilegeManager.enablePrivilege(this.enablePrivilege);
       } catch (e) {
           throw e;
    }
    
       var soap_call = new SOAPCall(); 
       soap_call.transportURI = this.transportURI;
       
       var p = new Array(args.length);
       for(i=0;i<args.length;i++){
           p[i] = new SOAPParameter(args[i],'');
       }
         
       soap_call.encode(0, func, this.urn, 0, null, p.length, p);
       
       var temp = soap_call.invoke();
       
       if (temp.fault) { 
           throw 'Code: ' + temp.fault.faultCode + 'n String: ' + temp.fault.faultString; 
       } else { 
           var response = new Array(); 
           response = temp.getParameters(false, {}); 
           return response[0].value; 
       } 
}

/*
* User defineable method to handle result when asyncInvoke() is called. add it as third param there!
*/
BlasterSoapClient.prototype.showResults = function (results)
{
    if (!results)
    {
      return;
    }
    
    var params = results.getParameters(false,{});
      alert(params[0].value);
};
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

Die RIGID-FLEX-Technologie

Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Neu | Berni

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