svcutil.exe - 如何获取WSDL

时间:2011-04-06 15:42:39

标签: linux soap svcutil.exe

我正在使用SOAP接口。接口提供商无法获得完整的WSDL(长篇故事)。他们让我使用svcutil.exe来生成我需要的一切。据我所知,svcutil.exe

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

如果它可以吐出一个WSDL就好了。或者,如果我可以通过Linux做些什么,那也很棒。

我可以从这里获得任何选项,或者我是否只需要等待提供程序来获取WSDL。

我想问题是,给定一个URL和使用svcutil.exe的说明,如何编写代码以仅使用Linux来使用SOAP服务?

2 个答案:

答案 0 :(得分:14)

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

   curl url > service.wsdl

以获得weatherForcast WSDL

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

答案 1 :(得分:1)

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

但正如您特别询问使用SVCUtil:您可以找到一个Windows框,使用SVCUtil来获取WSDL,然后返回到您的linux(和Java?)堆栈并从该WSDL生成客户端代理以使用它来调用服务您选择的Web服务框架。

如果目标服务支持WS-MetadataExchangeXML Web Service Discovery,SVCUtil将为您找到并下载WSDL:请参阅Microsoft的MSDN网站上的this HowTo

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

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

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