Android与Server的交互方式

Android客户端与服务器交互方式,基于两种通信协议,四类通信方式,如下图:


【Socket与HTTP两种连接协议的区别】

1.HTTP连接使用的是”请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。

2.socket是可以监听,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。保持客户端与服务器数据的实时与同步。

【四种连接方式的区别】

1.Socket,Android端SDK原生支持,服务器端无论是Java还是.NET都有接口,需要注意的地方与普通基于Socket网络编程的一样。

2.Http/HttpClient, Android端SDK原生支持,服务器端也无其它要求,ASP,JSP,PHP都能够处理,典型的框架如SSH-JSON。Java技术的服务器主要使用HttpServlet,.net技术的服务器对应HttpHandle,但处理起来没有那么Java那么直观。Http/HttpClient可采用的数据格式协议可以是简单的String类型,也可以是JSON或XML。

3.xml rpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。Android本身并不支持XML-RPC协议, 需要下载相关工具, http://code.google.com/p/android-xmlrpc/downloads/list 服务器端可参考此文章,http://www.ibm.com/developerworks/cn/webservices/ws-xml-rpc/

4.WebService,Android本身也不支持基于SOAP的WebService,需要下载相关工具http://code.google.com/p/ksoap2-android/,服务器端支持的应该比较多,如基于.NET可以使用WCF,基于Java的Axis2,Apche CXF等。

5.restful,Android可以使用Http/HttpClient接口,Server使用ASP.NET Web API实现方式。

【使用场景】

跟据两种连接协议的特点来区分,如想做一个即时聊天程序,最好使用Socket,作一个发布类的应用可以使用基于HTTP协议的各种方式,像WordPress使用的XML_PRC.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.