开篇:润墨网以专业的文秘视角,为您筛选了一篇基于HttpClient的Android远程数据库访问范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
【摘要】虽然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:///janronehoo/article/details/6939052,2011,11.
基金项目:广西大学“大学生创新创业训练计划”项目(项目编号:1301080)。
作者简介:
田佳影(1992—),女,重庆人,大学本科,现就读于广西大学计算机与电子信息学院,研究方向:电子商务。
周怡成(1991—),男,广西藤县人,大学本科,现就读于广西大学计算机与电子信息学院,研究方向:电子商务。
王宇航(1991—),男,湖北十堰人,大学本科,现就读于广西大学计算机与电子信息学院,研究方向:电子商务。
归伟夏(1974—),女,广西南宁人,硕士,副教授,研究方向:并行计算、协同计算。