Re: nuSoap client SOAP Call problem

From: Date: Sat, 25 Aug 2007 09:50:27 +0000
Subject: Re: nuSoap client SOAP Call problem
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-261262@lists.php.net to get a copy of this message
Thijs Lensselink wrote:
On Fri, 24 Aug 2007 13:55:29 +0200, Angelo Zanetti <angelo@zlogic.co.za> wrote:
Thijs Lensselink wrote:
    
On Fri, 24 Aug 2007 12:39:06 +0200, Angelo Zanetti <angelo@zlogic.co.za>
wrote:
Thijs Lensselink wrote:
        
On Fri, 24 Aug 2007 11:53:12 +0200, Angelo Zanetti
<angelo@zlogic.co.za>
wrote:
        
It's probably better to ask on a NuSOAP list.
The call method needs an array with parameters as far as i remember. But i never use the call method anyway. I always go for the send
              
method.
        
First create your request XML.
$request = '<SubscriptionStatus xmlns='http://localhost/'> <ISPID>xx</ISPID> <ISPPassword>yy</ISPPassword> <ISPUserID>Angelo1</ISPUserID> </SubscriptionStatus>'; Then serialize the envelope so it looks like a SOAP request. $msg = $client->serializeEnvelope($request, false, false,
              'document',
    
'literal');
            
And use the send method to make a connection and send the request.
$action = 'location of the webservice';
              The action variable is that the URL of the WSDL?
            
$results = $client->send($msg, $action, 60, 60);
              Why do you have 60 twice? As far as I can see in the API the send
document is only receiving 3 parameters? I have posted to many SOAP forums and the mailing list. No luck what
            so
    
ever. Your the first to reply thanks, I think this could work.
Your help is very much appreciated. regards Angelo
            Hey Angelo,
I know getting info for NuSOAP is a b*tch. Maybe switch to PHP5 and
          the
    
SOAP extension?
        
The $action variable is not the WSDL url. I missed that part in your
          first post.
        
The $action var is actually build up from two parts. The first part
          being the webservice
        
location. And the second part is /webserviceAction
The reason i have two 60's in the method call is because in the
          soapclient
        
class the method looks like this:
function send($msg, $soapaction = '', $timeout=0,
          $response_timeout=30)
    
{
        
But in the meantime i've been trying some other things with NuSOAP.
And
got this to work with WSDL.
        
$request = '<SubscriptionStatus xmlns='http://localhost/'>
<ISPID>xx</ISPID> <ISPPassword>yy</ISPPassword> <ISPUserID>Angelo1</ISPUserID> </SubscriptionStatus>'; $params = array('request' => $request); $operation = 'WebserviceAction'; $result = $client->call($operation, $params, $namespace); Hope this helps.
          Hi, yes I have done it as you have specified with the call method
unfortunately for some weird reason that creates the duplication. However I have almost got your previous mail working. But in the XML request I have: Now I see this is present: xmlns:0="" --> its an error thats making
        the
    
XML invalid any reason why its making that?
<?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:0=""> Another thing i that I have made the action variable to : "wsdlURL/SubscriptionStatus" where wsdlURL is the URL of wsdl. This also doesnt work but it might have to do with the above invalid
        XML
    
so perhaps this is the correct way to create the action parameter?
Thanks again very much.
        The empy xmlns means there is no namespace set.
I guess you didn't provide a namespace in the serializeEnvelope method. The 3rd parameter is set to false in the example. But that's where you
      should
    
set the $namspace.
The WSDL url should work if you take of the ?wsdl part.
      Thanks again.
I have specified the namespace but the problem is that its creating the weird characters: xmlns:0="" :0 Im not sure where they come from and I'm not sure I need the name space anyway Any idea why its causing this character? thank
    
try this: $msg = $client->serializeEnvelope($request, '', array(), 'document', 'literal'); That worked! I assume that it was send it as an array element therefore the 0 appeared causing the XML page to be invalid. Thanks -- ------------------------------------------------------------------------ Angelo Zanetti Systems developer ------------------------------------------------------------------------ *Telephone:* +27 (021) 552 9799 *Mobile:* +27 (0) 72 441 3355 *Fax:* +27 (0) 86 681 5885 * Web:* http://www.zlogic.co.za *E-Mail:* angelo@zlogic.co.za <mailto:angelo@zlogic.co.za>

« previous php.general (#261262) next »