【问题标题】:What options are available for transfering data from an Android application to the server哪些选项可用于将数据从 Android 应用程序传输到服务器
【发布时间】:2012-07-22 15:12:03
【问题描述】:

我正在尝试使用 android 手机应用程序进行现场数据收集应用程序。形式。我在android中制作了一个表格。现在我很困惑如何将数据发送到服务器。我可以使用txt文件发送数据吗?如果是这样,如何将 txt 文件从应用程序发送到服务器?

【问题讨论】:

  • 使用网络请求,而不是文本文件

标签: android forms io


【解决方案1】:

我会使用XMLJSON 而不是.txt 并通过HttpPutHttpPost 将数据发送到RESTful Web 服务器。互联网上有一些关于如何构建这样一个服务器的教程(例如,使用 Jersey 的 vogella)。

当用户完成输入并点击send-按钮时,您的应用程序会从form 收集所有数据,将其包装到XMLJSON 对象中并将其发送到服务器。

【讨论】:

    【解决方案2】:

    将表单数据发送到服务器的最简单方法是使用 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 线程。

    【讨论】:

    • 感谢您的回答。但在我的情况下,数据可能是离线收集的,因此需要保存数据,直到有 wifi、GPRS 或有线连接。希望这有点挑战然后你回应了。
    • 您可以使用多种方式对数据进行序列化以进行存储。如果您愿意,可以将其存储到文本文件中,然后在准备发送时,将其读回并填写帖子的数据。存储它的格式取决于您(JSON、XML、CSV、制表符分隔等),只要您可以对其进行序列化和反序列化即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 2012-03-07
    • 2012-10-14
    相关资源
    最近更新 更多