Re: [SOAP] soapClient not creating XML request correctly
| From: | Bilig Ordos | Date: | Thu, 09 Aug 2012 20:58:46 +0000 |
| Subject: | Re: [SOAP] soapClient not creating XML request correctly | ||
| References: | 1 2 | Groups: | php.soap |
| Request: | Send a blank email to php-soap+get-3368@lists.php.net to get a copy of this message | ||
Bob,
Thank you very much for the help. That made a huge difference and now I see the
"orderPlanFilter" part as well:
<SOAP-ENV:Body>
<ns2:getConfig>
<ns1:credential>
<ns1:user>user</ns1:user>
<ns1:password>pass</ns1:password>
<ns1:group>group</ns1:group>
</ns1:credential>
<orderPlanFilter>
<deviceName>abc</deviceName>
</orderPlanFilter>
</ns2:getConfig>
</SOAP-ENV:Body>
I feel that it is almost there, but it is still not getting the data because the
"orderPlanFilter" doesn't have the "ns2:" prefix.
How can I make the client to send the request out as the following which works fine when I test
via soapUI:
<SOAP-ENV:Body>
<ns2:getConfig>
<ns1:credential>
<ns1:user>user</ns1:user>
<ns1:password>pass</ns1:password>
<ns1:group>group</ns1:group>
</ns1:credential>
<ns2:orderPlanFilter>
<deviceName>abc</deviceName>
</ns2:orderPlanFilter>
</ns2:getConfig>
</SOAP-ENV:Body>
Thanks again,
Bilig
________________________________
From: Robert Williams <rewilliams@thesba.com>
To: "soap@lists.php.net" <soap@lists.php.net>
Sent: Thursday, August 9, 2012 12:39 PM
Subject: Re: [SOAP] soapClient not creating XML request correctly
On 8/8/12 14:10, "Bilig Ordos" <bilig.ordos@yahoo.com> wrote:
>$results =
>$x->getOrderPlanConfig(array('credential'=>array('user'=>'user',
>'password'=>'pass', 'group'=>'group')
>, array('orderPlanFilter'=>array('deviceName'=>'abc'))));
It's hard to know exactly what the service wants without seeing the actual
WSDL, but this looks a little suspicious to me. If you reformat this for
readability:
$results = $x->getOrderPlanConfig(
array(
'credential'=>array(
'user'=>'user',
'password'=>'pass',
'group'=>'group'
),
array( /*no name?*/
'orderPlanFilter'=>array('deviceName'=>'abc')
)
)
);
You can see that the plan filter parameter is not named, whereas the
credential one is. Try this:
$credential = array(
'user' => 'user',
'password' => 'pass',
'group' => 'group',
); //$credential
$orderPlanFilterType = array(
'deviceName' => 'abc',
/* following items unused in this case - assuming them to be optional
'group' => 'group abc',
'planName' => 'planName abc',
'created' => array('dateOperator' => 'op',
'value' => 'date
value'),
'lastModified' => array('dateOperator' => 'op',
'value' => 'date
value'),
*/
); //$orderPlanFilterType
$getorderPlanConfigParams = array(
'credential' => $credential,
'orderPlanFilter' => $orderPlanFilterType,
); //$getorderPlanConfigParams
$x->getorderPlanConfig($getorderPlanConfigParams);
If that doesn't work, try pulling the top-level parameters out of the
array:
$x->getorderPlanConfig('credential' => $credential, 'orderPlanFilter'
=>
$orderPlanFilterType);
Hopefully that helps at least a little; web services can certainly be a
pain!
Regards,
Bob
--
Robert E. Williams, Jr.
Associate Vice President of Software Development
Newtek Businesss Services, Inc. -- The Small Business Authority
https://www.newtekreferrals.com/rewjr
http://www.thesba.com/
Notice: This communication, including attachments, may contain information that is confidential. It
constitutes non-public information intended to be conveyed only to the designated recipient(s). If
the reader or recipient of this communication is not the intended recipient, an employee or agent of
the intended recipient who is responsible for delivering it to the intended recipient, or if you
believe that you have received this communication in error, please notify the sender immediately by
return e-mail and promptly delete this e-mail, including attachments without reading or saving them
in any manner. The unauthorized use, dissemination, distribution, or reproduction of this e-mail,
including attachments, is prohibited and may be unlawful. If you have received this email in error,
please notify us immediately by e-mail or telephone and delete the e-mail and the attachments (if
any).
--
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php