• 关于安卓和服务器通信的一点注意事项


                近两天在研究如何android客户端如何与服务端通信,查阅了资料翻看了许许多多的博客,发现虽然实现起来可能并不困难,可是其中还是有许许多多的小细节需要注意。

               首先是环境的搭建及所需要的包,有以下几点需要注意: 搭建服务端首先需要搭建好环境,下载好tomcat,jdk,eclipse后正确配置路径。

                java web项目中访问数据库需要下载相应的数据库驱动程序,连接代码与java类似。 在服务器中使用JSON相关类时,也需要导入相应的包才能够正常使用。 在写代码的过程中也发现了许多小问题,我总结了以下几点:

             1.访问网络问题。

             1>.android并不能在主线程中直接访问网络。

              由于访问网络需要时间,如果在主线程中直接访问网络,请求失败的话则无法往下执行,非常容易出现超时现象。因此,如果需要用到访问网络的服务时,需要新开一个线程执行访问网络这一任务。

              2>.新开的子线程需要通知主线程才能够正常执行数据更新。

         虽然android主要是基于java进行的开发,但和java仍然有些不同。当新建一个子线程时,需要建立相关类将主线程与子线程连接起来,才能够正常更新、获取数据。

              3>.访问自己搭建的服务端时注意访问地址

             我个人使用的是基于tomcat服务器的服务端,当android访问服务端时,访问地址中的ip地址不可写localhost.android中的localhost代表的并不是主机ip地址,因此写入正确的主机ip地址,才可以正常访问服务端。

             关于服务端的搭建,我尚在摸索当中。 但整个客户端服务端的交互按我理解大致如下: 客户端发出请求->服务端响应请求->服务端访问数据库获取数据->服务端以json格式将数据传输给客户端->客户端解析数据->客户端将数据显示在APP界面中。

             在获取服务端的数据时,我无法访问到传输数据的servlet资源,但可正常访问服务端写的jsp界面,此问题尚未解决,望指点,我也会继续寻找解决的方法。

         2016.4.14 续:

            无法访问servlet资源是由于无法解析json格式数据。如果在项目中导入json相关包后,仍然无法正常解析,则可将相关包复制到关联的tomcat包的lib目录下,我用此方法解决了问题。

           此外,注意电脑的ip地址是固定ip还是流动ip,否则可能出现网络错误。

  • 相关阅读:
    053-242
    053-227
    053-671
    053-489
    053-670
    sql
    白纸黑字签字画押,出人命的事
    CSS
    JS
    Eclipse发布地址不同引发的问题
  • 原文地址:https://www.cnblogs.com/wangsihui1996/p/5380715.html
Copyright © 2020-2023  润新知