gpt4 book ai didi

Java map 适配器在 Python 中等效于使用 wsdl

转载 作者:行者123 更新时间:2023-12-04 03:33:29 25 4
gpt4 key购买 nike

我需要解决另一个程序的网络服务接口(interface)。 API 以 wsdl 格式提供,我已经通过 zeep 实现了集成。 API 的一个强制性功能需要来自 Java 的 MapAdapter 作为传递参数(在 XML 文档“值”中)。我自己的程序是用 Python 编写的。有没有人遇到同样的问题并有解决方案?

编辑:API函数的XML文档:

<soapenv:Envelope >
<soapenv:Header/>
<soapenv:Body>
<v23:write>
<connection>
<handle>?</handle>
</connection>
<channel>?</channel>
<values>
<!--Zero or more repetitions:-->
<entries>
<key>?</key>
<value>?</value>
</entries>
<values>
</v23:write>
</soapenv:Body>
</soapenv:Envelope>

最佳答案

除非 SOAP Web 服务真的写得很糟糕,否则您无需担心任何 Java,即使该服务是用 Java 编写的。因此,Web 服务方法可能不需要 Java MapAdapter 作为参数,您也不需要查找 Python 等效项。

您正在使用接收 XML 请求的 SOAP 网络服务,并且您已经有一个 WSDL 文件。这应该告诉您需要发送的 XML 的结构,包含哪些元素和哪些类型。 Zeep 读取您传入的 WSDL,并允许您像 Python 函数一样调用 SOAP Web 服务并发送 Python 数据。

最有可能发生的情况是您发送的一些 XML 消息不完全是 Web 服务所期望的,并且该服务在处理它时做得很糟糕(您说 API 本身发送了一个肯定的响应,尽管有CAN 总线上没有写入数据)。

我建议您从等式中删除 Python 代码并使用 SoapUI对服务调用进行故障排除。将 WSDL 提供给 SoapUI 并使用它为您正在调用的特定 Web 服务方法生成请求样本。填写请求的所有必需详细信息并使用 SoapUI 进行调用,直到您看到服务的预期结果。

完成后,使用 zeep 编写您的 Python 代码,以从您的代码中获取发送到服务的相同请求。你可以log the messages zeep sends看看你这样做的时候发生了什么。

希望这是有用的。我只能提供一个通用的答案,因为你没有在你的问题中提供很多细节。发布 WSDL 或 Web 服务文档的链接有助于弄清楚这个神秘的 MapAdapter 参数是什么。

关于Java map 适配器在 Python 中等效于使用 wsdl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67401107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com