使用Android调用.NET Webservice

时间:2010-06-07 18:56:51

标签: .net android web-services json soap

我知道此问题曾在此处提出,但我认为这些答案不足以满足我的需求。

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

SOAP解决方案:

  1. 是否可以生成java 来自WSDL文件的源代码,如果是这样, 它会包含某种代理吗? 用于调用Web服务的类 它会在Android中运行吗? 环境呢?
  2. Google未提供任何SOAP Android中的库,所以我需要使用 第三方,有什么建议吗?
  3. 性能/开销如何? 解析和传输SOAP 线上的xml与JSON相比 溶液
  4. JSON解决方案:

    1. 这里有几节课 Android sdk会让我解析 JSON,但是它支持泛型 解析,就像我想要的结果一样 被解析为复杂类型?要么 我需要实现吗? 自己?
    2. 之前我读过2个图书馆 这里是Stackoverflow,GSON和 杰克逊。有什么不同 性能和可用性(来自 开发者视角)明智吗?你呢 伙计们有任何经验 那些图书馆?
    3. 所以我想最重要的问题是,采用什么方法?

      我希望你能帮助我。在此先感谢: - )

2 个答案:

答案 0 :(得分: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毫秒(取决于消息大小。 )
  4. 这可能与此无关,但我发现此Google I/O session on building RESTFul applications对于Android非常有用。我认为他们也发布了JSON API in 2.2

    希望这会有所帮助。

答案 1 :(得分:0)

我自己一直在做类似的事情,虽然我可能不是最好的权威,但我会说10次JSON中有9次是您想要的方式。并不是肥皂没有它的位置,但是对于大多数事情来说JSON会更简单,如果看起来不那样,那么你的服务更有可能需要重构而不是真正复杂的域来代表。

如果您想在iPhone,Blackberry,WinMo7,Ajax网站上使用相同的服务,或者在其他任何地方使用相同的服务,那么这对您来说会更好: - )

我的$ 0.02