我正在开发一个需要将数据(JSON 字符串)发布到 Web 服务器的应用程序。我正在使用 Apache HTTP 客户端(下面的附加代码)执行此操作。当有互联网连接时,一切正常,但是如果没有互联网连接,项目规范需要我在本地缓存数据并等到我与服务器建立连接。
以下是我的问题: 1. 在本地缓存 JSON 字符串并在我获得互联网连接时发送它们的最佳方式是什么。我能想到的唯一方法是将它们存储在数据库中,直到找到与服务器的连接。
- 如何检查我是否有 Internet 连接?
来自 POST 的代码在这里,如果我必须捕获数据,我假设我将不得不这样做来代替异常句柄中的“无连接”错误对话。
Thread t = new Thread()
{
public void run()
{
Looper.prepare(); //For Preparing Message Pool for the child Thread
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
HttpResponse response;
try {
HttpPost post = new HttpPost("http:xxxxx");
StringEntity se = new StringEntity( flat.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(se);
response = client.execute(post);
// /*Checking response */
if(response!=null){
InputStream in = response.getEntity().getContent(); //Get the data in the entity
}
} catch(Exception e)
{
e.printStackTrace();
//createDialog("Error", "Cannot Estabilish Connection");
Toast.makeText(getApplicationContext(), "cannot establish concetion",Toast.LENGTH_SHORT).show();
}
Looper.loop(); //Loop in the message queue
}
};
t.start();