加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 通过JSON将数据从android发送到服务器

发布时间:2020-12-13 22:21:14 所属栏目:PHP教程 来源:网络整理
导读:我有 MySQL数据库服务器 我需要通过JSON更新和检索MySQL服务器的数据 所以,我想知道如何做到这一点,我非常混淆这个示例语句: HttpPost httppost = new HttpPost("http://10.0.2.2/city.php"); 这意味着我需要编写与PHP服务器连接的应用程序 在写php连接数据
>我有 MySQL数据库服务器
>我需要通过JSON更新和检索MySQL服务器的数据

所以,我想知道如何做到这一点,我非常混淆这个示例语句:

HttpPost httppost = new HttpPost("http://10.0.2.2/city.php");

这意味着我需要编写与PHP服务器连接的应用程序
在写php连接数据库之前对吗?

解决方法

要将数据发送到服务器,您可以这样做:

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 'Data'.
 * 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 'Data'. //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 db.我也导入了SendAPI.php(您可以忽略)这只是我发送数据的类.基本上它包含了我想要使用的一些查询.比如sendAccelerationData().基本上类与存储过程类似.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读