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>