【问题标题】:Generate WSDL for existing SOAP Service using captured traffic使用捕获的流量为现有 SOAP 服务生成 WSDL
【发布时间】:2012-02-26 02:54:36
【问题描述】:

我需要使用打印机的 SOAP 服务。有一个 windows 工具可以访问这个服务,我用它来生成 SOAP 请求和我需要的重要功能的响应。

现在我应该使用 Python 为 Linux 编写一个客户端,我发现最简单的方法是将 suds 库与 WSDL 文件一起使用。但是我没有这个 WSDL!

当我调查 windows 工具时(查看可执行文件的 hexdump),我得出的结论是可能根本没有 WSDL 文件。

现在我的问题是,有没有人有“逆向工程”SOAP 服务的经验,并且知道哪些工具可以用于为现有服务创建 WSDL 文件? (谷歌搜索还没有发现任何有用的东西)。

【问题讨论】:

    标签: web-services soap wsdl


    【解决方案1】:

    您提到这是打印机的 SOAP 服务。打印机的 API 是否记录在制造商的网站上?文档是否包含 WSDL?你能从制造商那里得到 WSDL 吗?

    如果您可以从制造商那里获得 WSDL,那么您就完成了!

    如果没有,那么您必须自己构建 WSDL,因为我怀疑您是否可以找到一个在给定 SOAP 示例的情况下生成 WSDL 的工具(使用 SOAP Web 服务时,您主要获得两种工具:从 WSDL 生成代码的工具+ 从代码生成 WSDL 的那些)。

    如果您熟悉 SOAP、WSDL 和 XSD,创建 WSDL 并不难。您只需要一个文本编辑器,甚至可能需要一个 WSDL editor 来加快速度。

    如果您对自己的 WSDL 知识没有完全的信心,仍然有一些工具可以帮助您了解完整的 WSDL。这是您可以做到的一种方法:

    1 - 首先您需要为 SOAP 有效负载创建 XML schema。为此,您可以找到工具,甚至是some online。获得架构后,通过添加、更改或删除元素来调整它以满足您的需求。

    2 - 现在您可以使用 XSD 生成 WSDL。有一个online tool 可以做到这一点。它只需要请求/响应元素类型以 Request/Response 结尾。请务必阅读说明。

    您获取您的 XSD 文件,更改操作名称以添加 Request/Response 后缀并将其提供给 WSDL Generator - Web Tool。您将获得您的 WSDL。

    现在根据需要调整此 WSDL(如果不需要,请删除 Request/Response 后缀)然后...

    3 - ... 确保您以a valid WSDL 结束。

    4 - 现在您可以使用您的 WSDL 并使用像 SoapUI 这样的工具从中生成示例请求和响应,以验证您是否获得了正确的结果。

    SoapUI 消息是否与您开始使用的消息相匹配?如果是,您就完成了,可以将 WSDL 提供给 suds 以创建 Linux 客户端。如果没有,请调整 WSDL,直到获得所需的结果。

    【讨论】:

    • 感谢您的回答。不,遗憾的是没有文档。目前我们仍然有问题要找出密码哈希,但如果我们通过了,我会尝试你的建议。
    • 如果有人读到这个,我所做的是: 1. 使用 trang 从 xml 生成 xsd(它需要多个输入文件) 2. 手写其余部分,使用 Eclipse 来验证正确性wsdl.
    • “在线工具”链接失效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    相关资源
    最近更新 更多