php实现post请求 接收android客户端json数据 存储数据库 并返回json

大纲

实现php端存储数据库类
实现php端接收post请求
实现php端返回json数据

实现android 客户端 jsonbean
实现android 客户端 http请求线程类

Linux服务器检查mysql数据库 ,数据是否正常插入


php后台

-实现php端存储数据库类

<?phpclass VideoClear{  /**   * 检验ID 并存储数据库 操作   *    * $id 客户端传来的 id    *    **/  public static function checkId($id){      //链接数据库      $con = mysql_connect("localhost","root","new-password");      //选择数据库      mysql_select_db("my_db",$con);      //检验Id是否存在       $result = mysql_query("select * from recordClear where recordId=".$id."");      $num = mysql_num_rows($result);      //获取星期      $time2 = date("N",time());     if($time2==2){//每周一开始清理       if($num){//数据存在 则 对次数增加          mysql_query("update recordClear set recordCount=recordCount+1 where recordId=".$id);//对数据自增       }else{//数据不存在 则建立新数据          $sql = "INSERT INTO recordClear(recordId,recordCount,cleardate) VALUES(".$id.",'1',".$time2.")";          $query = mysql_query($sql);       }       return "off".$id.mysql_error();      }else{       return "on";      }     mysql_close($con);  }}?>

-实现php端接收post请求

<?php    $json = file_get_contents("php://input");    $data = json_decode($json, true);    require_once('./Response1.php');    Response1::json($data['id']);?>

-实现php端返回json数据

<?phpclass Response1{    /**    *    *    *    * $codelangdao  朗道版本信息 返回的提示码    * $codezirui    子瑞版本信息 返回的提示码    * $message 返回的提示信息    * $data 返回的信息    */    public static function json($id,$data){    require_once('./VideoClear.php');    $tag = VideoClear::checkId($id);                $result = array(        'clear_tag'=>"off",        'whether_clear'=>$tag,                    );        echo json_encode($result,128);        exit;    }}?>

接下来是android客户端

-实现android 客户端 jsonbean
直接从php代码复制参数 保证书写不出错

/** * Created by Administrator on 2016/6/14. * author 王浩 * qq 1520777821 * 转载请注明 */public class VideoClearBean {    public String clear_tag;    public String whether_clear;}

-实现android 客户端 http请求线程类

/** * Created by Administrator on 2016/6/14. * author 王浩 * qq 1520777821 * 转载请注明 */public class UpdataThread extends Thread implements Runnable {    public UpdataThread(){    }    @Override    public void run() {        super.run();        executeClear();    }    public void executeClear() {        InputStream inputStream = null;        HttpURLConnection urlConnection = null;        try {            URL url = new URL("http://191.101.237.106/test1.php");            urlConnection = (HttpURLConnection) url.openConnection();            urlConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");            urlConnection.setRequestProperty("Accept", "application/json");            urlConnection.setRequestMethod("POST");            urlConnection.setDoOutput(true);            DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream());            //配置 json            Gson gson = new Gson();            RequestBean json = new RequestBean();            json.id = "15";            json.verName = "1.41";            String jsonString = gson.toJson(json);            Log.e("TAA", "TEST: 发出去的数据" + jsonString);            wr.writeBytes(jsonString);            wr.flush();            wr.close();            // try to get response            int statusCode = urlConnection.getResponseCode();            if (statusCode == 200) {                inputStream = new BufferedInputStream(urlConnection.getInputStream());                String str = VerUtils.inputStream2String(inputStream);                Log.e("TAA", "TEST:" + str);                VideoClearBean verBean = gson.fromJson(str, VideoClearBean.class);                Log.e("TAA", "TEST Bean::" + verBean.toString());            }        } catch (Exception e) {        } finally {            if (inputStream != null) {                try {                    inputStream.close();                } catch (IOException e) {                    e.printStackTrace();                }            }            if (urlConnection != null) {                urlConnection.disconnect();            }        }    }}

-Linux服务器检查mysql数据库 ,数据是否正常插入
我们用 id 15检测下 客户端运行代码

然后查询Linux查询mysql

Last login: Tue Jun 14 07:05:05 2016 from 115.195.22.120[root@guhaotechnology ~]# mysql -uroot -pnew-passwordWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 16Server version: 5.1.73 Source distributionCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || my_db              || mysql              || test               |+--------------------+4 rows in set (0.00 sec)mysql> use my_db;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables; +-----------------+| Tables_in_my_db |+-----------------+| recordClear     |+-----------------+1 row in set (0.00 sec)mysql> select * from recordClear;+----------+-------------+------------+| recordId | recordCount | cleardate  |+----------+-------------+------------+| 1        |           4 | NULL       || 1        |           4 | NULL       || 5        |         656 | NULL       || 6        |           1 | 1465878458 || 7        |           1 | 1465878564 || 8        |           1 | 2          || 9        |           1 | 2          || 11       |           3 | 2          || 15       |           1 | 2          |+----------+-------------+------------+9 rows in set (0.00 sec)

很明显我们成功了 15的数据已经插入进去了

假如测试时你的服务器爆出了这样的错误
重启服务器即可 这是mysql的bug

Warning: mysql_query(): Access denied for user 'root'@'localhost' (using password: NO) in /var/www/html/VideoClear.php on line 34                                                          Warning: mysql_query(): A link to the server could not be established in /var/www/html/VideoClear.php on line 34

接下来再看下客户端的log

06-14 19:03:30.894 29719-29749/com.qq.e.union.demo E/TAA: TEST: 发出去的数据{"id":"15","verName":"1.41"}06-14 19:03:31.065 29719-29749/com.qq.e.union.demo E/TAA: TEST:{"clear_tag":"off","whether_clear":"off15"}06-14 19:03:31.071 29719-29749/com.qq.e.union.demo E/TAA: TEST Bean::com.qq.e.union.demo.VideoClearBean@baa7a3

**以上就是和大家分享的
转载请注明 浩宇国香 博主原创
想看更多的来 楼主的博客平台
很多私货哦
http://www.guhaotechnology.com**

更多相关文章

  1. Android(安卓)HAL实现的三种方式(3) - 基于Manager的HAL设计
  2. Android(安卓)自定义AlertDialog提交表单
  3. Android开发中Handler的经典总结
  4. Android(安卓)NFC开发(二)——Android世界里的NFC所具备的条件以及
  5. 13-5-16 Android自定义空间实现wifi信号强度
  6. Android中用Application类实现全局数据变量的使用
  7. 浅谈Java中Collections.sort对List排序的两种方法
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. python起点网月票榜字体反爬案例

随机推荐

  1. Android(安卓)Studio 基础控件使用
  2. Android(安卓)MediaExtractor setDataSou
  3. 软键盘挡住文本框
  4. Android(安卓)SeekBar的使用
  5. Android(安卓)9.0 修改音量等级
  6. Android的数据库--sqlite(一)
  7. 基于Android(安卓)P 背光流程
  8. 2011.07.04——— android activity切换
  9. android获取手机信息大全
  10. Android(安卓)获取天气预报