博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
okhttp通过post发送Json数据到php 更新数据库
阅读量:6937 次
发布时间:2019-06-27

本文共 2173 字,大约阅读时间需要 7 分钟。

hot3.png

一直在用HttpURLConnection连接PHP服务器,结果更新的数据库都是空值,一直找不到原因,也只能停手了,希望自己有一天能够解决吧~

改成用okHttp实现

1. 布局--简单地加个button,点击后提交json数据到PHP服务器,然后PHP更新数据库表

 

2. 权限 ----需要连接网络

3.okHttp.jar包的下载和okio.jar包的下载导入 

(1)http://square.github.io/okhttp/        此链接中有

(2)如何导入,请自行搜索

4. android代码 ---(1)button添加监听器  (2)post json数据方法

(1)onCreate函数中

loginbtn = (Button) findViewById(R.id.login_btn); loginbtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { postJson(); } }).start(); } });

(2)postJson方法

public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); private void postJson() { JSONObject user = new JSONObject(); try { user.put("username","mary2"); user.put("password","sadbfdbds"); } catch (JSONException e) { e.printStackTrace(); } //申明给服务端传递一个json串 //创建一个OkHttpClient对象 OkHttpClient okHttpClient = new OkHttpClient(); //创建一个RequestBody(参数1:数据类型 参数2传递的json串) String json = user.toString(); RequestBody requestBody = RequestBody.create(JSON,json); //创建一个请求对象 Request request = new Request.Builder() .url("http://192.168.155.1/posttest.php") .post(requestBody) .build(); //发送请求获取响应try { Response response=okHttpClient.newCall(request).execute(); //判断请求是否成功 if(response.isSuccessful()){ //打印服务端返回结果 Log.i("Success tag",response.body().string()); } } catch (IOException e) { e.printStackTrace(); } }

5. php代码,放在www目录下 文件名为posttest.php

``` php

    <?php  

    //$json=$_POST ['json'];
    error_reporting(E_ALL ^ E_DEPRECATED);
    //$json = '{"username": "dsvcjf","password":"ddfshfd"}';
    //echo $json;
    echo ($json = file_get_contents('php://input'));
    $obj = json_decode($json);

    //Save
    $con = mysql_connect('localhost','root','123456') or die('Cannot connect     to the DB');
    mysql_select_db('test',$con);

      /* grab the posts from the db */

      //$query = "SELECT post_title, guid FROM wp_posts WHERE post_author     = $user_id AND post_status = 'publish' ORDER BY ID DESC LIMIT     $number_of_posts";
      $u=$obj->{'username'};
      $p=$obj->{'password'}; 

    mysql_query("INSERT INTO `test` (username, password) VALUES     ('$u','$p')");

    mysql_close($con);

    ?>

```

 

转载于:https://my.oschina.net/LaVictoria/blog/680082

你可能感兴趣的文章
BIPlatform的安装以及本地开发环境搭建
查看>>
GOF23之适配器模式
查看>>
PHP跨页面SESSION丢失问题
查看>>
Java Socket探究
查看>>
现在在下载Google APIs by Google Inc. 速度为1kib/s,特此纪念又...
查看>>
Android Push开源解决方案
查看>>
安卓constraintLayout中app:srcCompat设置的图片显示不出来
查看>>
webmagic新版文档(更新中)
查看>>
nginx 安装在ubuntu上
查看>>
Xtrabackup全量备份/增量备份脚本
查看>>
白天谋生存,晚上谋发展
查看>>
hive 12及以后,可以使用非同步查询
查看>>
CentOS 7安装部署ELK 6.2.4
查看>>
通过ansible批量安装部署mysql
查看>>
Kafka/Metaq设计思想学习笔记
查看>>
Voice Lab 8-SIP笔记
查看>>
如何在 block 中修改外部变量
查看>>
fedora update to 23
查看>>
linux的运行级别及相应含义
查看>>
阿里的分布式持续集成系统-reliable
查看>>