使用Android调用.NET Webservice

Las*_*e P 8 .net android json soap web-services

我知道之前已经问过这个问题,但我认为这些答案不足以满足我的需求.

我们有一个用于iPhone应用程序的SOAP Web服务,但我们可能需要Android特定版本或服务代理,因此我们可以选择使用SOAP或JSON.我对这两种方法都有一些顾虑:

SOAP解决方案:

  1. 是否可以从WSDL文件生成java源代码,如果是这样,它是否包含某种代理类来调用Web服务并且它将在Android环境中工作吗?
  2. 谷歌没有在Android中提供任何SOAP库,所以我需要使用第三方,任何建议?
  3. 通过线程解析和传输SOAP xml与JSON解决方案相比,性能/开销如何呢?

JSON解决方案:

  1. Android sdk中有一些类可以让我解析JSON,但是它是否支持泛型解析,就像我希望将结果解析为复杂类型一样?或者我需要自己实现吗?
  2. 我在Stackoverflow,GSON和Jackson之前已经阅读了大约2个库.性能和可用性(从开发人员的角度来看)有何不同?你们对这些图书馆有任何经验吗?

所以我想最重要的问题是,采用什么方法?

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

Sou*_*nta 5

我不能谈论JSON解决方案.但是我已经在Android上使用SOAP了一段时间.

以下是我对SOAP解决方案的评论.

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

这可能是无关的,但我发现这个关于为Android 构建RESTFul应用程序的Google I/O会话非常有用.我认为他们还在2.2中发布了JSON API

希望这可以帮助.


ama*_*tar 0

我自己一直在从事类似的工作,尽管我可能不是这方面的最佳权威,但我想说十分之九的 JSON 是您想要的方式。并不是说肥皂没有它的位置,而是对于大多数事情来说,JSON 会更简单,如果它看起来不是这样,那么您的服务更有可能需要重构,而不是拥有一个真正复杂的域来表示。

当然,额外的好处是,如果您想在 iPhone、Blackberry、WinMo7、Ajax 网站或其他任何地方使用相同的服务,这对您来说会好得多:-)

我的 0.02 美元