On Fri, 24 Aug 2007 12:39:06 +0200, Angelo Zanetti <angelo@xxxxxxxxxxxx> wrote: > > > Thijs Lensselink wrote: >> On Fri, 24 Aug 2007 11:53:12 +0200, Angelo Zanetti <angelo@xxxxxxxxxxxx> > 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. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php