如何解决PHP SOAP,以字符串,大字符串的形式获取请求
我正在尝试处理SOAP API。我有一个端点,我使用__doRequest()
方法发出请求,完整请求如下所示:
$url = 'http://.../onlinestore_ws.asmx?WSDL';
$action = 'http://tempurl.org/f_get_items_list'
$xmlrequest = '<x:Envelope
xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tem="http://tempurl.org">
<x:Header/>
<x:Body>
<tem:f_get_items_list>
<tem:str1>
<tem:str_items_list>
<tem:item_code>?</tem:item_code>
<tem:item_international_barcode>?</tem:item_international_barcode>
<tem:item_total_balance_qty>0</tem:item_total_balance_qty>
<tem:item_enduser_sellprice>0</tem:item_enduser_sellprice>
<tem:item_unit_cost>0</tem:item_unit_cost>
<tem:item_card_lastupdate>2020-09-18T00:00:00</tem:item_card_lastupdate>
</tem:str_items_list>
</tem:str1>
</tem:f_get_items_list>
</x:Body>
</x:Envelope>';
$client = new SoapClient($url);
$test = $client->__doRequest($xmlrequest,$url,$action,1.2,0);
问题是,我得到一个响应,例如字符串,但是没有带数据的XML标记,而是干净的数据,“裸”数字,我无法解析,因为它没有用某种符号和长度分隔“细分”不同,
示例:
字符串(1854900)
“ 01010-1.000001.451.45002020-02-15T20:41:35.5161001000209.00190.07992020-02-18T13:22:36.37310000100000570.00285.00002015-10-20T15:07:41.00310001100010600.00300.00002015-10-20T15:07:41.3610002100020540.00270.00002015-10-20T15 :07:41.7210003100030600.00300.00002015-10-20T15:08:00.14310004100040640.00320.00002015-10-20T15:08:00.5
也许我错过了我的要求吗?
使用XML标记或对象获取数据(我可以对其进行转换或解析)会很好。
我已经用Google Chrome扩展程序检查了Endpoint-boomerangapi-我得到了我真正需要的响应,即带有数据的XML标签。
UPD::也许会帮助某人-
$test2 = $client-> __getFunctions();
使用__getFunction()查看端点中的可用功能
接下来,根据XML结构,我制作了一个数组:
$serviceArguments = array ("str1"=>
array('str_items_list'=>
array('item_code' => '?','item_total_balance_qty' => 0,'item_enduser_sellprice' => 0,'item_unit_cost' => 0,'item_card_lastupdate' => '2020-09-21T00:00:00')));
接下来,我调用了一个方法,并将参数作为数组传递:
$test2 = $client->__call('f_get_items_list',array('str1' => $serviceArguments));
为得到响应,我有对象,可以轻松解析它!
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。