2012-09-28 50 views
1

我一直在评估和处理一个原型,其中使用WCF Web服务暴露了几个API。我的服务正在按照预期的方式在Windows平台上使用托管客户端。我的服务客户端可以在任何平台上。我不知道如何处理其他平台(UNIX)。至今我已经考虑期权夫妇 -如何为非Windows平台实现WCF测试客户端。

  • gSOAP的
  • MONO DOTNET

我无法使用其中任何一项,由于一些制约因素。现在我唯一的选择就是实现我自己的客户端,它可以发送肥皂请求并获得肥皂响应。我的首选技术是C/C++。我在我的服务器中使用wsHttpBinding,并且只会在http协议上工作。 我不确定以下几点 -

  1. 我需要实现自己的WSDL解析器吗?
  2. 我是否需要自己的序列化程序?
  3. 如何让我的客户端更加灵活,以便我的WSDL中的任何更改都可以在客户端进行最少的代码更改?

我在寻找专家的帮助,他们可以引导我用适当的方法处理基本的客户端示例。

+0

[你看过SoapUI吗?](http://www.soapui.org/) - 它是一个开源的,基于Java的SOAP客户端,可以很容易地用来测试你的WCF服务。有一个免费版本(以及一个Pro版本,其功能更多,费用适中) –

回答

0

我的经验是WCF与Java客户端的互操作性。您可以使用Java SOAP库,如城市http://metro.java.net/或轴http://axis.apache.org/axis2/java/core/index.html。甚至还有一个C轴库。 http://axis.apache.org/axis2/c/core/

我确定像Ruby/Python等其他语言也有类似的库。

另一种选择是使用基于REST的界面,然后您可以使用任何具有HTTP支持的语言/平台,甚至可以使用任何类似curl和libcurl的工具http://curl.haxx.se/

+0

我无法使用java作为客户端应用程序使用的是C++。如果我提供一个Java库,那么客户端需要一个桥接器(JNI),这会增加复杂性。而且维护也很困难。我的服务不是一个巨大的API,也没有更多的API。所以如果我想在C/C++中实现我的客户端代理,那将会是什么?有没有任何框架或图书馆可以做这项工作? –

+0

我还没有用过,但是你可以研究axis2/C这是一个C库,因此应该可以在C++中使用 – softveda