使用捕获的流量为现有SOAP服务生成WSDL

mau*_*ufl 14 soap wsdl web-services

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

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

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

现在我的问题是,有没有人体验过"逆向工程"SOAP服务,并且知道哪些工具可以用于为现有服务创建WSDL文件?(谷歌还没有提出任何有用的东西).

Bog*_*dan 11

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

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

如果没有,那么你必须自己构建WSDL,因为我怀疑你能找到一个生成WSDL的工具给定SOAP样本(当使用SOAP Web服务时,你主要得到两种工具:那些从WSDL生成代码的工具+那些从代码生成WSDL).

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

如果您对WSDL知识没有充分的信心,那么仍然有一些工具可以帮助您完成整个WSDL.这是一种你可以做到的方法:

1 - 首先,您需要为SOAP有效负载创建XML模式.为此您可以找到工具,甚至可以在线查找.拥有架构后,通过添加,更改或删除元素来调整它以满足您的需求.

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

您获取XSD文件,更改操作的名称以添加请求/响应后缀并将其提供给WSDL生成器 - Web工具.您将获得您的WSDL.

现在根据需要调整这个WSDL(如果你不需要它们,删除Request/Response后缀)然后......

3 - ...确保最终得到有效的WSDL.

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

SoapUI消息是否与您开始使用的消息匹配?如果是,您已完成并可以提供WSDL suds以创建Linux客户端.如果没有,调整WSDL直到得到你想要的结果.

  • “在线工具”链接已损坏 (3认同)
  • 如果有人读到这个,我做的是:1.使用trang从xml生成xsd(它需要多个输入文件)2.手工编写其余部分,使用Eclipse验证wsdl的正确性. (2认同)