【发布时间】:2017-11-30 05:32:39
【问题描述】:
我想使用 android 应用程序从 web 服务传递和获取数据,我有那个 web 服务的wsdl。因此,我可以使用ksoap2 或retrofit 2 中的哪一个更好。如果我使用其中一个,还需要什么。
【问题讨论】:
标签: android soap retrofit2 ksoap2
我想使用 android 应用程序从 web 服务传递和获取数据,我有那个 web 服务的wsdl。因此,我可以使用ksoap2 或retrofit 2 中的哪一个更好。如果我使用其中一个,还需要什么。
【问题讨论】:
标签: android soap retrofit2 ksoap2
这取决于编写服务的架构。 Retrofit 用于休息服务,而 ksoap 用于肥皂服务。
REST 与 SOAP SOAP 和 RESTful Web 服务之间存在显着差异。下面的项目符号根据个人经验分解了每个 Web 服务的功能。
休息
RESTful Web 服务是无状态的。您可以通过重新启动服务器并检查交互是否存在来测试这种情况。 对于大多数服务器,RESTful Web 服务通过 HTTP GET 方法提供了良好的缓存基础设施。如果服务返回的信息不经常更改并且不是动态的,这可以提高性能。 服务生产者和消费者必须了解传递的上下文和内容,因为没有一套标准的规则来描述 REST Web 服务接口。 REST 对于限制配置文件的设备很有用,例如移动设备,对于这些设备,附加参数的开销较少(例如,标头)。 REST 服务很容易与现有网站集成,并使用 XML 公开,因此 HTML 页面可以轻松使用相同的内容。几乎不需要重构现有的站点架构。因此,开发人员的工作效率更高,因为他们不需要从头开始重写所有内容;相反,他们只需要添加现有功能。 与 SOAP 相比,基于 REST 的实现更简单。
SOAP
Web 服务描述语言 (WSDL) 描述了一组通用规则来定义服务的消息、绑定、操作和位置。 WSDL 类似于定义服务提供的接口的合同。 SOAP 比 REST 服务设计需要更少的管道代码(例如,事务、安全、协调、寻址和信任)。大多数现实世界的应用程序并不简单并且支持复杂的操作,这需要维护会话状态和上下文信息。使用 SOAP 方法,开发人员无需将管道代码写入应用程序层。 SOAP Web 服务(例如 JAX-WS)对于异步处理和调用很有用。 SOAP 支持多种协议和技术,包括 WSDL、XSD 和 WS-Addressing。 通过数据库存储过程使用 Web 服务允许用户直接使用来自不同来源的信息更新数据库。用户还可以定期安排作业,以定期更新数据库中的数据。
更多详情请访问以下链接:
http://searchmicroservices.techtarget.com/tip/REST-vs-SOAP-Choosing-the-best-web-service
【讨论】:
Retrofit,适用于 Android 和 Java 的类型安全 HTTP 客户端
Retrofit 可用于使用任何类型的 Web 服务,无论是 REST 还是 SOAP,但通常用于 REST API。我对 SOAP 标准了解不多,但你绝对可以使用 Retrofit 来做 SOAP。
【讨论】:
WSDL 是基于 SOAP 的 Web 服务,然后使用 KSOAP 无法使用 Retrofit,因为 Retrofit 仅用于 Restful Web 服务。
【讨论】: