问题标签 [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.
python - 在 Suds python 中覆盖肥皂信封
我有一个相机,我正在尝试连接它以防止泡沫。我尝试发送原始 xml 并发现阻止 xml suds 工作的唯一方法是不正确的 Soap 信封名称空间。
信封命名空间是:
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
我想将其重写为:
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
为了在 python 中添加命名空间,我尝试以下代码:
message = Element('Element_name').addPrefix(p='SOAP-ENC', u='www.w3.org/ENC')
但是当我将它添加SOAP-ENV
到名称空间时,它不会写入,因为它被硬编码到 suds 绑定中。有没有办法在泡沫中覆盖它?
谢谢你的帮助。
python - 将复杂数据类型与 python SUDS 客户端一起使用
我正在尝试使用 SUDS 从 python 客户端调用 webservice。当我调用具有复杂数据类型作为输入参数的函数时,它没有正确传递,但是从 web 服务调用中正确返回了复杂数据类型。
这是我正在使用的代码:
Python客户端:
网络服务java类:
和豆类:
所以,问题是这样的:
on call:client.service.printParamBean(params)
在 python 客户端中,服务器端的输出是:
但随叫随到:client.service.modifyParamBean(params)
客户端输出为:
我在这里做错了什么?
python - Python:如何使用 Twisted 作为 SUDS 的传输方式?
我有一个基于 Twisted 的项目,用于与网络设备通信,我正在添加对API 为 SOAP的新供应商 ( Citrix NetScaler ) 的支持。不幸的是,Twisted 中对 SOAP 的支持仍然依赖于SOAPpy
已经严重过时的 . 事实上,截至这个问题(我刚刚检查过),twisted.web.soap
它本身甚至在 21 个月内都没有更新!
我想问是否有人愿意分享使用 Twisted 出色的异步传输功能和 SUDS 的经验。似乎插入自定义的 Twisted 传输将很自然地适合 SUDS' Client.options.transport
,我只是很难把头绕在它周围。
我确实想出了一种使用 SUDS 异步调用 SOAP 方法的方法twisted.internet.threads.deferToThread()
,但这对我来说就像是一个 hack。
这是我所做的一个例子,给你一个想法:
这按预期工作,并将api.login()
调用的返回推迟到完成,而不是阻塞。但正如我所说,感觉不对。
提前感谢任何帮助、指导、反馈、批评、侮辱或整体解决方案。
更新:我发现的唯一解决方案是twisted-suds,它是 Suds 的一个分支,经过修改后可以与 Twisted 一起使用。
python - 使用 Suds 访问 Atlassian Crowd SOAP API(python SOAP 库)
最近有没有人通过Suds Python 库访问Crowd SOAP API取得任何成功?
我发现过去有几个人成功地做到了这一点,但 Atlassian 似乎从那时起改变了他们的 WSDL,以使现有的建议不完全有用。
下面是我一直在尝试的最简单的例子:
不幸的是,这会产生以下错误:
python - SUDS 生成的 XML 不正确
我正在尝试使用 SUDS 和 Python 与 SOAP Web 服务通信。经过大量学习 Python(是的,我是新手)并研究如何使用 SUDS 之后,我遇到了一个问题。
根据 suds,我正在调用的 Web 方法的签名是
所以我使用 SUDS 创建我想要的类并将其发送到方法。但是我得到一个错误。所以我打开了登录,我可以看到正在发送的 XML 不正确,这导致了反序列化错误。SOAP 包如下所示
如您所见,所有其他元素周围都有一个“ClassificationEventCode”元素,这不应该存在。如果我将此 xml 剪切并粘贴到 SOAPUI 中并首先删除此元素,然后将其直接发布到 Web 服务,它会成功运行。
这是我用来拨打电话的代码
有谁知道为什么会这样?我猜 SUDS 认为它应该基于 WSDL 存在。
谢谢。
python - 如何在 suds 0.3.6 中添加 http 标头?
我在 python 2.5 中有一个应用程序,它通过 suds 0.3.6 发送数据。
问题是数据包含非ASCII字符,所以我需要在soap消息中存在以下标题:
内容类型="文本/html; 字符集="utf-8"
SOAP 消息中存在的标头只是:
内容类型=“文本/html”
我知道它在 suds 0.4 中已修复,但它需要 Python2.6,我需要 Python2.5,因为我使用 CentOS,它需要那个版本。所以问题是:
如何更改或添加新的 HTTP 标头到 SOAP 消息?
aptana - Aptana Studio 无法解析导入但可以工作
我刚刚安装了suds并在Aptana Studio中试了一下。虽然,它似乎无法from suds.client import Client
通过用红色下划线来解决,但以下代码仍然有效。因此,我决定通过运行相同的代码来安装 Eclipse-Plugin for Pydev。这次 Eclipse Plugin 可以按预期解析 Client。与 Eclipse 插件不同,为什么 Aptana Studio 不能解析此类?这是一种错误,还是我在安装 suds 包时搞砸了?
python - 在运行时更改 suds 客户端的 Web 服务 url(保留 wsdl)
首先,我的问题和这个类似
但这有点不同。我们拥有的是一系列环境,具有相同的服务集。对于某些环境(本地环境),我们可以访问 wsdl,从而生成 suds 客户端。对于外部环境,我们无法访问 wsdl。但同样,我希望我可以只更改 URL 而无需重新生成客户端。我试过克隆客户端,但它不起作用。
编辑:添加代码:
这给了我这个例外:
由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action ' http://tempuri.org/IMyService/IsHealthy '的消息。这可能是因为合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。
问题是,如果我将客户端直接设置为主机,它可以正常工作:client = suds.client.Client(host)
如您所见,我尝试克隆客户端,但有同样的例外。我什至试过这个:
并得到了同样的例外。
任何人都可以帮助我吗?
python - SUDS 渲染重复节点并将所有内容包装在其中
这是我的代码:
这是它的输出:
看看它是如何两次创建 accountID 节点并将整个内容包装在其中的?为什么?我怎样才能让它停止呢?!
编辑:我刚刚在 SUDS 输出中注意到了这一点:
这个标签是什么?...去检查文档
python - Windows 和 FreeBSD 中脚本的不同工作
我正在编写一些适用于网络服务器的脚本。
所以,我有以下代码:
在 FreeBSD 中运行时,它返回
但在 Windows 中它返回
我该如何解决?