2011-08-04 20 views
0

私はアンドロイド開発には新しく、 私のウェブサイトにデータを送信するアンドロイド用のアプリケーションを開発したいと思います(例えば経度&緯度)。アンドロイドからデータを送信する方法とウェブサイトでそれを取得/取得する方法。アンドロイドからウェブサイトへのデータ送信とウェブでの受信

+0

あなたはxml解析とhttp応答を学ぶ必要があります –

答えて

1

これは役に立ちます。ちょっと前に、加速データをサーバーに送信して、データをmysqlデータベースに格納することができました。あなたがこれを行うことができますサーバーにデータを送信するために :

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(); 
?> 

この

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()); 
    } 
} 

その後、送信するためには、言うことができます私が最近使った例です。ちょうどPHPファイルに注意してください。私はConnection.phpをインポートします これはデータベースへの接続を処理するだけです。だから、それをMYSQL dbに接続するためのあなたのコードに置き換えてください。また、私はSendAPI.phpをインポートしました(あなたは無視することができます)。これはデータを送信するための私のクラスでした。基本的には、私が使いたいクエリーのいくつかが含まれていました。 sendAccelerationData()などです。基本的にクラスはストアドプロシージャのクラスに似ていました。

+0

私は同じコードを実行しましたが、テスト用にlocalhost用のアプリケーションを実行したいと思います。私は私のページのアドレスを "http:(my Ip)/filename.php"としましたが、 "http/1.1 403 Forbidden"というレスポンスを得ました。 .. – Sahi

+0

@BobMcbobersonあなたはaspxページでこのメソッドを試してみましたか? –

関連する問題