【发布时间】:2011-12-13 03:35:33
【问题描述】:
我是 android 开发的新手,现在我正在开发一个用于在线购物的 android 电子商务应用程序。到目前为止,在这个项目中,我已经创建了一个购物车来保存用户选择的文章。但我所做的每一件事都是静态的。
现在我必须与服务器通信以获取有关产品和折扣的更新。
我知道如何使用 json 来使用 web 服务。
1.我很困惑,每次我启动我的应用程序时,我都应该使用 webservice 与服务器通信??或者我应该在应用程序第一次在设备上执行时将数据存储在应用程序中。
2.我应该遵循什么方法来存储数据
我应该将它存储在设备缓存中或 我应该将它存储在应用程序 sqlite db 中
编辑: 从网络服务获取数据
try {
Log.v("inside webservice call ", "1");
HttpPost request = new HttpPost(url);
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
// Build JSON string
Log.v("inside webservice call ", "2");
JSONStringer JsonString = new JSONStringer().object().key("prodid")
.value("4057339").endObject();
StringEntity entity = new StringEntity(JsonString.toString());
request.setEntity(entity);
Log.v("data", JsonString.toString());
Log.v("inside webservice call ", "2");
DefaultHttpClient httpClient1 = new DefaultHttpClient();
HttpResponse response = httpClient1.execute(request);
Log.v("inside webservice call ", "3");
Log.v("response code", response.getStatusLine().getStatusCode()
+ "");
HttpEntity responseEntity = response.getEntity();
// Read response data into buffer
char[] buffer = new char[(int) responseEntity.getContentLength()];
InputStream stream = responseEntity.getContent();
InputStreamReader reader = new InputStreamReader(stream);
reader.read(buffer);
stream.close();
Log.v("inside webservice call ", "4");
results = new JSONObject(new String(buffer));
// Populate text fields
String message = results.getString("message");
String isvalid = results.getString("isvalid");
Log.v("tag", message + isvalid);
Log.v("inside webservice call ", "5");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
我这样做是为了从服务器获取数据
但无法将此数据放入 sqlite db 请指导我
【问题讨论】:
标签: android web-services sqlite caching e-commerce