未找到Suds类型

问题描述 投票:1回答:1

我试图用suds执行一个soap服务。来自服务器的参数签名是这样的(摘自 print(client))

xs:anyType orderBy

我的suds客户端抛出以下异常

suds.TypeNotFound: Type not found: 'orderBy'

在我的代码中,我传递了以下数组作为参数

['DESC']

在PHP中,它的工作原理是这样的

$client->serviceFunctionName([...], array( 'eventdate' => 'DESC' ))

在来自服务器的原始 WSDL-XML 中,参数看起来是这样的。

<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'

祝贺

python suds
1个回答
0
投票

这通常不值得争取。大多数旧的web apis都提供了一些PHP代码,只是工作。如果你有它,用它来生成模板,以后你可以用你熟悉的非SOAP请求lib。

<?php 
  // Setting up SOAP request here like in api documentation

  echo "REQUEST BODY:\n" . $client->__getLastRequest() . "\n";
  echo "REQUEST HEADERS:\n" . $client->__getLastRequestHeaders() . "\n";

头部通常包含内容类型,基本授权令牌,以及发出请求的端点。Body可以用来创建模板,可以用python或其他栈进行参数化和请求。

© www.soinside.com 2019 - 2024. All rights reserved.