【发布时间】:2012-07-22 15:12:03
【问题描述】:
我正在尝试使用 android 手机应用程序进行现场数据收集应用程序。形式。我在android中制作了一个表格。现在我很困惑如何将数据发送到服务器。我可以使用txt文件发送数据吗?如果是这样,如何将 txt 文件从应用程序发送到服务器?
【问题讨论】:
-
使用网络请求,而不是文本文件
我正在尝试使用 android 手机应用程序进行现场数据收集应用程序。形式。我在android中制作了一个表格。现在我很困惑如何将数据发送到服务器。我可以使用txt文件发送数据吗?如果是这样,如何将 txt 文件从应用程序发送到服务器?
【问题讨论】:
我会使用XML 或JSON 而不是.txt 并通过HttpPut 或HttpPost 将数据发送到RESTful Web 服务器。互联网上有一些关于如何构建这样一个服务器的教程(例如,使用 Jersey 的 vogella)。
当用户完成输入并点击send-按钮时,您的应用程序会从form 收集所有数据,将其包装到XML 或JSON 对象中并将其发送到服务器。
【讨论】:
将表单数据发送到服务器的最简单方法是使用 HttpClient 和 HttpPost。
试试这样的:
try {
HttpClient http = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.example.com/process");
List<NameValuePair> data = new ArrayList<NameValuePair>();
data.add(new BasicNameValuePair("name1", "value");
data.add(new BasicNameValuePair("name2", "value");
post.setEntity(new UrlEncodedFormEntity(data));
HttpResponse response = http.execute(post);
// do something with the response
}
catch (ClientProtocolException e) {
// do something
}
catch (IOException e) {
// do something
}
请注意,您需要在 AsyncTask 中执行此操作,这样您就不会锁定等待网络操作完成的 UI 线程。
【讨论】: