用Android调用.NET Webservice

我知道这个问题已经在这里问过,但是我不认为这些答案足够满足我的需求。

我们有一个用于iPhone应用程序的SOAP web服务,但是我们可能需要一个特定于Android的版本或服务代理,因此我们可以select使用SOAP或JSON。 我对这两种方法都有一些担忧:

SOAP解决scheme:

  1. 是否有可能从WSDL文件生成Java源代码,如果是的话,它会包括某种types的代理类来调用Web服务,它会在Android环境中工作吗?
  2. Google没有在Android中提供任何SOAP库,所以我需要使用第三方,任何build议?
  3. 在parsing和传输SOAP XML xml时,性能/开销与JSON解决scheme有什么关系?

JSON解决scheme:

  1. Android sdk中有几个类可以让我parsingJSON,但它是否支持genericsparsing,就像我希望将结果parsing为复杂types一样? 还是我需要自己实现呢?
  2. 我之前在Stackoverflow上看过2个库,GSON是Jackson。 性能和可用性(从开发人员的angular度来看)有什么不同? 你们有没有经验与这些图书馆?

所以我想大的问题是,用什么方法?

我希望你能帮助我。 提前致谢 :-)

Solutions Collecting From Web of "用Android调用.NET Webservice"

我一直在做类似的工作,虽然我可能不是最好的权威人士,但是我会说10个JSON中有9个是你想要的。 并不是说soap没有它的位置,但是对于大多数情况来说,JSON会更简单一些,如果不这样看,那么你的服务更有可能需要重构,而不是有一个真正复杂的域来表示。

如果你想在iPhone,Blackberry,WinMo7,Ajax网站或其他地方使用相同的服务,那么额外的好处就是:对于你来说,它会更好。

我的$ 0.02

我无法谈论JSON解决scheme。 但是我一直在使用Android上的SOAP。

这里是我对SOAP解决scheme的评论。

  1. 我发现在Android设备上使用SOAP最stream行的库是kSOAP。
  2. 默认的kSOAP库不提供从WSDL生成Java类的方法。 如果你有一个很多方法的WSDL是一个大问题。 我发现一个项目( http://en.sourceforge.jp/projects/sfnet_wsdl2ksoap2/ ),“声称”做到这一点。 注意:我还没有成功使用过。 我已经实现了我的代码的当前版本后,我发现它。
  3. XMLparsing有一个开销,有时可能是一个问题。 parsing开销将取决于您的应用程序上下文和性能要求。 目前,通过使用SOAP发送video帧(SOAP包含base64编码的MJPEG帧),我获得了可接受的性能。对于Nexus One上的大型消息parsing时间,其大小为150-200毫秒(取决于消息大小。 )

这可能是无关的,但我发现这个谷歌I / O会议上build立 Android的RESTFul应用程序有用。 我想他们也在2.2发布了一个JSON API

希望这可以帮助。