没有找到Suds类型

时间:2015-04-20 22:27:42

标签: python suds

我正在尝试用肥皂水执行肥皂服务。来自服务器的参数的签名如下所示(取自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'

此致

1 个答案:

答案 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或任何其他堆栈进行请求。