问题标签 [suds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1194 浏览

python - 通过 Python/SUDS 调用运行时 SOAP 方法

我有一个 suds.client.Client 对象。我可以通过硬编码方法名称来调用方法,例如

我希望能够执行一个名称直到运行时才知道的方法。我敢肯定这很简单,但我对泡沫很陌生,它似乎做了一些非常疯狂的魔法。

谢谢

0 投票
1 回答
1033 浏览

python - 使用 Suds 遇到 Python SOAP 问题

我在使用 Suds 时遇到问题,我不知道是什么让它表现得像这样。我正在尝试调用 Web 服务,并且该服务将一种复杂类型作为参数(ShippingGuideRequestType)。我将发布我的 pdb 会话并尝试解释正在发生的事情。您看到的“请求”变量是 ShippingGuideRequestType 类型,它是使用 client.factory.create("ShippingGuideRequestType") 创建的。

ShippingGuideRequestType 看起来不错,现在让我们尝试用数据填充必填字段。让我们首先处理 UserInformation 属性。这是使用 client.factory.create("UserInformationType") 创建的:

现在让我们处理使用 client.factory.create("ProductIdsType") 创建的 ProductIds:

最后一个必需的属性是 PackagesInputType,它是以更复杂的方式创建的。首先创建 PackagesInputType,然后创建 PackageInputType 数组(使用 client.factory.create("PackageInputType"))。

在我看来,结构看起来不错,现在让我们尝试调用服务。

这里发生了什么?为什么所有内容都在 UserInformation 元素中编码?

0 投票
1 回答
7107 浏览

python - SAXParseException 使用 Python 和 suds 0.4?

我有一个简单的 Python 脚本,它使用 Suds 从 SOAP Web 服务中提取数据。它在一台机器上完美运行,但是当我将它移动到另一台具有旧版本 Python (2.4.3) 的机器上时,我得到以下堆栈跟踪:

我查看了涉及缓存的各种相关错误,但这似乎不是问题。我已经禁用了缓存,并且 /tmp/suds 在任何情况下都只包含一个版本文件。

这可能与 Python 版本有关,还是我应该尝试其他明显的东西?

0 投票
1 回答
1186 浏览

python - Python - SUDS SOAP 无效的命名空间 - 通道顾问?

在工作中,我必须访问/使用 Channel Advisor API

http://developer.channeladvisor.com/display/cadn/Order+Service

资源:

我正在尝试执行简单的 ping

问题:

我收到一条回复,指出我的 SOAP XML 格式错误

请求需要如下所示:

但相反,它看起来像:

我根本没有使用 SOAP 的经验,到目前为止我已经避免了它无尽的实现和复杂性 - 所以请原谅我的无知和缺乏知识,但如果我做错了什么 - 我怎么能得到 python (我们为这类事情选择的语言)与频道顾问 API 一起工作

更新:

*由于我没有收到任何答案,如果/当我找到解决方案时,我会尝试更新每个人(2011 年 3 月 3 日)

我认为部分问题是 SUDS 可能没有正确包含嵌套的 WSDL 文件。

0 投票
1 回答
7192 浏览

python - 使用 suds SOAP 库的 HTTP 身份验证的奇怪行为

我有一个正在运行的 python 程序,它使用 suds 通过 SOAP 获取大量数据。Web 服务是通过分页功能实现的,这样我可以在每次 fetch 调用时获取nnn行,并在后续调用中获取下一个nnn。如果我使用如下代码向 HTTP 服务器进行身份验证

一切都很好。但是,如果我使用以下

它恰好适用于 6 次迭代。也就是说,如果我指定每次提取 10 行的提取限制,我会返回 60 行。在第七次取货时,我收到

有没有人对可能导致这种情况的原因有任何建议。绝对是这种变化导致了问题。我可以来回交换身份验证样式,它是完全可重现的。

我正在使用 suds 0.4 运行 python 2.6.6。

谢谢

0 投票
2 回答
882 浏览

java - 编写一个 python 客户端将 xs:anyType 参数传递给 Java 中的 webservice 方法

我写了一个小的 webservice[Axis2/Java],它公开了一个方法

我的客户是 python suds 客户。

WSDL 显示元素 varArgs 如下。

然而,运行时 Object 数组中没有任何内容。当我尝试在调试模式下查看数组时,它显示它为空。

请建议我如何将参数传递给 Fill 方法,以便我可以发送一个数组或 varArgs 参数中的单个基本类型。

谢谢,达瓦尔。

0 投票
1 回答
740 浏览

python - Python - Suds0.4 - SOAP 主体复杂参数

我尝试通过 SUDS0.4 将 python 客户端连接到 SOAP 服务器。通常,为了向 SOAP 函数提供复杂的参数,我使用 python 字典: 例如,如果 SOAP 参数看起来像:

我的 python 代码如下所示:

现在我尝试连接到一个我没有编程的 SOAP 服务器,但我知道我的请求的 SOAP 主体必须从现有的 java 客户端看起来如何:(感兴趣的一部分)

所以我必须传递由两个具有完全相同名称“parameterDesignatorValuePair”的复杂参数组成的复杂参数“parameterDesignatorValuePairSet”:我不能通过使用python字典来做到这一点:-(

我尝试使用列表和元组,但 SUDS 返回错误...

感谢您的帮助

0 投票
1 回答
2487 浏览

python - suds 库中的自定义身份验证(Python)

我需要使用 WSDL 访问 SOAP 服务器,其中通过发送两个参数 UserId 和 AccessToken 来完成身份验证。我试过这样: token = UsernameToken( UserId, AccessToken ) token.setnonce() token.setcreated()

和 suds 抛出了这个错误

如何将此参数添加到我的请求中?还是我做错了什么?

0 投票
2 回答
2840 浏览

python - 访问网络服务

我一直在尝试编写一个客户端来访问工作的 Web 服务。我已经成功地使用 SUDS 和 ZSI 和 Python 编写了客户端。我使用 NetBeans 6.9 协助编写了一些 Java 客户端。成功的客户都在访问我在互联网上找到的免费提供的网络服务。

事实证明,我需要联系工作的客户并不那么友好。它确实需要身份验证:

http://www.cmicdataservices.com/datacenter/service.asmx

如果我获取此 Web 服务的 WSDL 描述,我会看到有六种方法。

也返回了 70 种类型。其中之一是身份验证类型。

在我的 Python 和 Java 客户端中,我已经能够创建这些 Authentication 对象,但无法做任何进一步的事情。

从 WSDL 看,没有任何迹象表明有任何方法可以使用可用的内容创建这些身份验证对象。Web 服务的供应商确实提供了一个使用 Adob​​e Air 构建的客户端,我可以使用它进行测试,以确保我可以对 Web 服务进行身份验证并使用它。

这是我第一次不得不与 Web 服务交互,我不确定这里是否缺少任何东西。谁能告诉我是否有一些明显的东西我在这里缺少关于如何使用此服务进行身份验证?

这是我编写的 Python 客户端以及它的输出。如果取消注释打印客户端行,您可以看到很好的 WSDL 信息打印输出。

输出:

0 投票
2 回答
5392 浏览

python - 如何在使用 suds 创建的 SOAP 请求中对属性强制使用名称空间前缀

我正在使用 python suds(版本:0.3.9 GA build:R659-20100219)与具有以下结构的 SOAP 服务进行交互:

我需要发送一个结构如下的 SOAP 请求:

也就是说,我需要在 id 属性前面附加目标命名空间。如果我不这样做,请求将失败:(

我尝试了几种方法来创建我的 doIngest 请求对象,但我只能创建如下请求:

也就是说,在 id 属性上没有目标命名空间前缀。

我尝试过以下变体:

和:

和:

但我得到了相同的 SOAP 请求

WSDL 告诉我:

这表明 id 确实需要命名空间前缀。

因此,问题是,如何将命名空间前缀强制到我的 id 属性上?

感谢甘地

因此解决方案是:

将 Suds 更新到 0.4(因为 MessagePlugin 在版本:0.3.9 中不可用)

然后: