zoukankan      html  css  js  c++  java
  • 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可能要涉及到更复杂的业务逻辑,同时要对访问权限进行控制,以保证数据的安全性,在这里就不多说。
    以上回答若有错误或不足之处还请各位同学指正。
  • 相关阅读:
    es6 扩展运算符 ...
    回顾2018,展望2019
    vue 兼容IE报错解决方案
    错误的理解引起的bug async await 执行顺序
    js async await 终极异步解决方案
    javascript 之继承-15
    javascript 之原型、原型链-14
    vue入门学习篇——初识vue
    模拟实现select组件功能
    ie8绝对定位存在的坑
  • 原文地址:https://www.cnblogs.com/curry1234/p/4929605.html
Copyright © 2011-2022 走看看