webservice

mark以下前辈写的作品:
 
 
       真正对数据库数据进行操作的都还是webservice,
把android工程看成是网页就可以了,网页向服务器发送请求,然后服务器响应.

具体android链接服务器用什么语句,只要你理解了原理,光靠猜也猜到了.
不要忘记android-webservice-mysql之间的关系就可以了.思路要清晰.
URL加载要访问的路径,然后用HttpURLConnection接收url的openConnection,
然后就是各种流包装来包装去,
 
       当然,首先想到的是直接访问数据库的方式,但是这也就意味着数据库的账户密码就直接放到客户端中,不仅是安全性不能保证,而且意味着应用的所有业务逻辑判断必须放到手机端,当系统需要多终端支持时,就必须在其他的终端中重写所有的业务逻辑。
前辈们早就为我们提出了另一种解决方案:使用中间人进行数据访问,而且中间人不仅担任数据访问的角色,还能够对业务逻辑进行处理,这样,只要系统结构足够合理,手机终端需要做的就仅仅是数据显示的任务了。这个中间人就是今天要说的 Web Service,贴一句维基百科对Web Service的定义:
Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。
这个定义已经指出了:Web service的通信方式使用标准的Web协议;Web service能够提供多平台的支持。那么,为了获得更多的平台支持,最好也最方便的方法就是实用http协议作为通信协议,这样不仅android/ios等移动中端可以访问,pc平台的中端也可以支持,甚至web app也可以使用这一服务。
如果直接说整个数据的流向,可以总结为(以android为例):android向Web Service发起请求(WebService可以简单理解为是一个网站,而发起请求则可简单理解为是访问一个网址),WebService根据请求请求数据库并作相应的业务逻辑处理,向android返回数据(返回的数据可以简单认为是访问网址时浏览器看到的网页),android再根据返回的数据进行解析,获取相应的数据。
如果上面对于第一次接触的同学还不好理解的话,下面举个简单的栗子,以获取某省各省市的当天的天气情况为例(纯属个人YY ):
    • 输入:省名称

  • 输出:各城市天气情况
那么,android要做的就是用http协议访问服务地址:
http://hostname/getCityWeather?province=hb
而服务端返回湖北省各城市的天气情况的JSON 数据(当然还可以是其他格式的数据):
[{"CityId":1,"CityName":"武汉","LowTemperature":20,"HighTemperature":23,"Weather":"多云"},{"CityId":1,"CityName":"仙桃","LowTemperature":20,"HighTemperature":23,"Weather":"多云"}]
然后,android解析字符串(android中有JSON解析的库),得到武汉跟仙桃的天气情况,完成整个数据通信过程。这里推荐使用 进行服务资源的访问。

当然,上面的栗子只是一个很简单的数据访问,实际的WebService可能要涉及到更复杂的业务逻辑,同时要对访问权限进行控制,以保证数据的安全性,在这里就不多说。
以上回答若有错误或不足之处还请各位同学指正。
posted @ 2015-11-02 11:07  TTff  阅读(206)  评论(0编辑  收藏  举报