正文 基於HttpClient的Android遠程數據庫訪問(1 / 2)

基於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();