我正在尝试用肥皂水执行肥皂服务。来自服务器的参数的签名如下所示(取自print(client)
)
xs:anyType orderBy
我的suds客户端抛出以下异常
suds.TypeNotFound: Type not found: 'orderBy'
在我的代码中,我将以下数组作为参数传递
['DESC']
在PHP中它的工作原理如下
$client->serviceFunctionName([...], array( 'eventdate' => 'DESC' ))
在来自Server的原始WSDL-XML中,Parameter看起来像这样
<wsdl:part name="orderBy" type="xs:anyType"/>
如何在python suds中正确完成此操作?
更新
尝试了以下内容,该内容被服务器拒绝
dict(eventdate='DESC')
来自服务器的错误消息
suds.WebFault: Server raised fault: 'Invalid parameter type: param=sort expected=Array got=object'
此致
答案 0 :(得分:0)
通常不值得争取。大多数旧的Web API都提供了一些可以正常使用的PHP代码。如果您使用它来生成模板,以后可以将其与您熟悉的非SOAP请求库一起使用:
<?php
// Setting up SOAP request here like in api documentation
echo "REQUEST BODY:\n" . $client->__getLastRequest() . "\n";
echo "REQUEST HEADERS:\n" . $client->__getLastRequestHeaders() . "\n";
标头通常将包含内容类型,基本授权令牌和发出请求的端点。正文可用于创建可参数化的模板,并可用于通过python或任何其他堆栈进行请求。