2011-08-04 55 views
0

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

+0

你需要学习XML解析和http响应 –

回答

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()。基本上类与存储过程类似。

+0

先生我做了相同的代码,但我想运行我的应用程序localhost,只是为了测试。我把我的页面地址设置为“http:(我的ip)/filename.php”,但我得到了“http/1.1 403 Forbidden”的回应,你能帮我多一些,请........ .. – Sahi

+0

@BobMcboberson你有没有用过任何aspx页面的方法? –