基于HttpClient的Android远程数据库访问

来源 :电子世界 | 被引量 : 0次 | 上传用户:ywg005
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】虽然Android有SQLite的支持,但由于手机的硬件条件限制,很多数据库并没有直接运行在客户端上,因此对远程数据库的访问也是Android的必要技术。本文主要运用HttpClient组件,完成对远程数据库的访问,实现Android客户端对远程服务器数据的调用及修改。
  【关键词】Android;HttpClient;MySQL;JSP
  1.引言
  虽然Android本身具有SQLite的支持,但SQLite数据只能进行简单的CRUD操作,数据类型也不能太复杂和数据容量不能太大。[1]而访问远程数据库的方法多种多样,主要分为直接和间接两种。直接访问采用JDBC连接技术,但其安全性较低,间接方法主要通过客户端向服务器发送请求,进而采用数据传输的方式进行数据库访问。
  当下比较流行的数据传输方式主要有XML和JSON两种方式,由于HTTP协议是从WWW服务器传输超文本到本地浏览器的传送协议,使浏览器更加高效,[2]而HttpClient是支持HTTP协议的客户端编程工具包,因此HttpClient组件为实现远程数据库的连接提供了更为便捷有效的方式。
  2.HttpClient简介
  HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包。它提供的主要的功能包括:实现了所有HTTP的方法(GET,POST,PUT,HEAD等)、支持自动转向、支持HTTPS协议、支持代理服务器等。[3]
  3.HttpClient在Android中的应用
  3.1 工作原理
  (1)客户端通过URL向服务器发送请求,建立连接;
  (2)服务器接收客户端请求,并将响应信息返回客户端;
  (3)客户端与服务器断开连接。[4]
  3.2 服务器端的开发
  服务器端采用JSP技术,通过利用JavaBean使用JDBC完成数据库连接,同时,使用Servlet实现数据传输功能。
  3.3 手机客户端的开发
  Android集成了org.apache.http.client.HttpClient,可以直接实现简单的htttp Get和Post操作。操作实现步骤如下:
  (1)创建HttpClient客户端对象;
  (2)生成响应的请求信息;
  (3)使用execute方法发送HTTP GET(HTTP POST)请求,并返回HttpResponse对象,通过利用getStatusCode获取返回码以判断请求是否发送成功(若返回码为200,则成功);
  (4)解析返回信息。
  关键代码如下:
  public class ApacheHttpClient{
  public String httpGet(String url) {
  String response = null;
  HttpClient httpclient = new DefaultHttpClient();
  HttpGet httpGet = new HttpGet(url);
  HttpResponse httpResponse;
  try{
  httpResponse = httpclient.execute(httpGet);
  int statusCode = httpResponse.getStatusLine().getStatusCode();
  if(statusCode==HttpStatus.SC_OK){
  response = EntityUtils.toString(httpResponse.getEntity());
  }
  else{
  response = “返回码:”+statusCode;
  }
  } catch (Exception e){}
  return response;
  }
  public String httpPost(String url,List params) throws Exception{
  String response = null;
  HttpClient httpclient = new DefaultHttpClient();
  HttpPost httppost = new HttpPost(url);
  try{
  httppost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
  HttpResponse httpResponse = httpclient.execute(httppost);
  int statusCode = httpResponse.getStatusLine().getStatusCode();
  if(statusCode==HttpStatus.SC_OK){
  response = EntityUtils.toString (httpResponse.getEntity());
  }
  else {
  response = “返回码:”+statusCode;
  }
  }catch (Exception e){}
  return response;
  }
  }
  4.结束语
  本文在利用JavaBean工具类对数据库进行操作的基础上,通过使用Servlet进行数据的输入输出,并结合HttpClient组件传送Http数据,顺利实现了Android与远程数据库的间接访问,同时也在一定程度上加强了对数据库的安全性保护。未来HttpClient组件技术还将在Android手机平台中越来越广泛地得以应用。
  参考文献
  [1]李洋,殷云鹏,赵勇.基于Android的网络数据存储与访问[J].中国科技信息,2013(08):92-92.
  [2]林汝泽,徐媛媛,方凯等.基于HTTP协议的Android手机数据同步实现[J].信息通信,2013(01):96-96.
  [3]徐婉珍.HttpClient组件及其在Android开发中的应用探讨[J].数字技术与应用,2013(01).
  [4]Janronehoo.android学习——HttpClient操作模拟http操作[EB/OL].http://blog.csdn.net/janronehoo/article/details/6939052,2011,11.
  基金项目:广西大学“大学生创新创业训练计划”项目(项目编号:1301080)。
  作者简介:
  田佳影(1992—),女,重庆人,大学本科,现就读于广西大学计算机与电子信息学院,研究方向:电子商务。
  周怡成(1991—),男,广西藤县人,大学本科,现就读于广西大学计算机与电子信息学院,研究方向:电子商务。
  王宇航(1991—),男,湖北十堰人,大学本科,现就读于广西大学计算机与电子信息学院,研究方向:电子商务。
  归伟夏(1974—),女,广西南宁人,硕士,副教授,研究方向:并行计算、协同计算。
其他文献
本文根据煤矿行业对通信产品的要求,介绍了目前煤矿使用的几种通信系统,产品功能、特点和应用环境。说明了井下使用两套通信系统的原因和规划,并分析了其在井下布置位置和方式及
应用自制的皮秒激光剥蚀采样系统与电感耦合等离子体质谱法相结合对金属镀层[包括单一金属镀层、有涂层金属镀层、复合(多层)金属镀层等]的定性分析进行了研究。高激光脉冲能量
本文主要通过介绍RD8000管线探测仪的原理、使用方法及在实际工作中的应用,总结RD8000管线探测仪的优点及不足,为电缆的路径探测提供参考。
大型冷水机组的开发中,控制软件作为产品的一个部件,是设备稳定运行的关键,在设计、开发、更改等全过程中必须依据相关准则和符合管理标准,本文从大型冷水机组的控制软件的设
歌名本身不会闹什么幺蛾子,但写歌的人就不一定了.比如前两年彩虹合唱团的经典曲目《张士超你到底把我家钥匙放在哪里了》.一连串问号袭来,这样的歌,从歌名到歌词,都是谜一样
电力系统要求各设备具有高度的时间同步性,因此对时系统的可靠运行是电力系统运行的重要保障。本文对基于NTP协议的网络对时方式的原理进行了分析研究,根据NTP协议的对时原理和