svcutil.exe – 如何获取WSDL

我正在使用SOAP接口。 界面提供者无法让我获得完整的WSDL(长篇故事)。 他们要求我使用svcutil.exe来生成我需要的所有东西。 从我可以告诉,svcutil.exe

  • 需要窗口 – 我没有可用的窗口框
  • 生成C#或VisualBasic

如果它能够吐出一个WSDL就会很棒。 或者如果有什么我可以从Linux做的,那也会很棒。

我有从这里的任何选项,或者我只需要等待提供者让我的WSDL。

我想问题是,给定一个URL和说明使用svcutil.exe,我怎么能编写代码来使用SOAP服务只使用Linux?

如果使用Linux,你可以通过curl保存

curl url > service.wsdl 

所以得到一个weatherForcast WSDL

  curl http://www.webservicex.net/WeatherForecast.asmx?WSDL > weatherForcast.wsdl 

@grantk已经演示了最简单的方法:如果您知道WSDL托管的位置,则可以使用您选择的工具轻松获取文档。

但是当你特别提到使用SVCUtil时,你可能会发现一个窗口框,使用SVCUtil来获取WSDL,然后返回到你的linux(和Java?)栈,并从这个WSDL生成客户端代理来使用你的web服务来调用服务选择框架。

如果目标服务支持WS-MetadataExchangeXML Web Service发现 ,则SVCUtil将为您定位并下载WSDL:请参阅Microsoft的MSDN网站上的HowTo

使用@grantk使用的天气预报服务示例,您可以要求SVCUtil查询服务并下载元数据,如下所示:

 svcutil /t:metadata http://www.webservicex.net/WeatherForecast.asmx 

(我相信在Linux世界中使用WS-MetadataExchange也有类似的工具,但我的经验是使用SVCUtil。)