【问题标题】:Sending data from android to website and receiving on web将数据从 android 发送到网站并在网络上接收
【发布时间】:2011-08-04 10:32:33
【问题描述】:

我是 android 开发新手,而且, 我想为android开发一个应用程序,它将数据发送到我的网站(例如经度和纬度),我的问题是如何从android发送数据以及如何在网站上获取/捕获它。

【问题讨论】:

  • 你需要学习xml解析和http响应

标签: android http web network-programming client-server


【解决方案1】:

这可能会有所帮助。只是我刚才做的一个例子,将加速数据发送到服务器,这样我就可以将数据存储到 mysql 数据库中。 要将数据发送到服务器,您可以这样做:

private void sendData(ArrayList<NameValuePair> data)
{
     // 1) Connect via HTTP. 2) Encode data. 3) Send data.
    try
    {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new      
        HttpPost("http://www.blah.com/AddAccelerationData.php");
        httppost.setEntity(new UrlEncodedFormEntity(data));
        HttpResponse response = httpclient.execute(httppost);
        Log.i("postData", response.getStatusLine().toString());
            //Could do something better with response.
    }
    catch(Exception e)
    {
        Log.e("log_tag", "Error:  "+e.toString());
    }  
}

然后发送让我们说:

private void sendAccelerationData(String userIDArg, String dateArg, String timeArg,
        String timeStamp, String accelX, String accelY, String accelZ)
{
    fileName = "AddAccelerationData.php";

    //Add data to be send.
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(7);
    nameValuePairs.add(new BasicNameValuePair("userID", userIDArg));
    nameValuePairs.add(new BasicNameValuePair("date",dateArg));
    nameValuePairs.add(new BasicNameValuePair("time",timeArg));
    nameValuePairs.add(new BasicNameValuePair("timeStamp",timeStamp));

    nameValuePairs.add(new BasicNameValuePair("accelX",accelX));
    nameValuePairs.add(new BasicNameValuePair("accelY",accelY));
    nameValuePairs.add(new BasicNameValuePair("accelZ",accelZ));

    this.sendData(nameValuePairs);
}

那么服务器上的 AddAccelerationData.php 文件是:

<?php
/*
 * What this file does is it:
 * 1) Creates connection to database.
 * 2) Retrieve the data being send.
 * 3) Add the retrieved data to database.
 * 4) Close database connection.
 */
require_once '../Connection.php'; //connect to a database/disconnect handler.
require_once '../SendAPI.php'; //deals with sending querys.

$server = new Connection();
$send = new Send();

//Connect to database.
$server->connectDB();

//Retrieve the data.
$userID = $_POST['userID'];
$date = $_POST['date'];
$time = $_POST['time'];

$accelX = $_POST['accelX'];
$accelY = $_POST['accelY'];
$accelZ = $_POST['accelZ'];

//Add data to database. //Personal method to query and add to database.
$send->sendAccelerationData($userID, $date, $time, $timeStamp, $accelX, $accelY, $accelZ);


//Disconnect from database.
$server->disconnectDB();
?>

这是我最近使用的一个例子。只是要注意在php文件中。我导入 Connection.php 这只是处理与数据库的连接。因此,只需将其替换为连接到 MYSQL 数据库的代码即可。我还导入了 SendAPI.php(你可以忽略它)这只是我发送数据的类。基本上它包含一些我想使用的查询。比如sendAccelerationData()。基本上类类似于存储过程。

【讨论】:

  • 先生,我已经完成了相同的代码,但我想为本地主机运行我的应用程序,只是为了测试。我把我的页面地址设置为“http:(my Ip)/filename.php”,但我得到了“http/1.1 403 Forbidden”的响应,你能帮我多一些吗,拜托...... ..
  • @BobMcboberson 您是否在任何 aspx 页面上尝试过这种方法?
猜你喜欢
  • 2016-05-21
  • 1970-01-01
  • 2021-02-24
  • 2019-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多