文档章节

okhttp通过post发送Json数据到php 更新数据库

pearl2015
 pearl2015
发布于 2016/05/23 18:25
字数 505
阅读 362
收藏 6

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

改成用okHttp实现

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

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.pearl.subwayguider.MainActivity"> 
<Button android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="login" 
android:id="@+id/login_btn" 
android:layout_alignParentTop="true" 
android:layout_alignParentLeft="true" 
android:layout_alignParentStart="true" 
android:layout_marginTop="53dp" />
 </RelativeLayout>

 

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

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

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

    ?>

```

 

© 著作权归作者所有

共有 人打赏支持
pearl2015
粉丝 4
博文 37
码字总数 8101
作品 0
其它
Android okhttp3.0 框架使用总结

最近工作主要用到OkHttp3.0网络请求框架,进行Get请求,Post请求,多文件上传等功能,本文内容大部分来源于网上博文,仅做个人总结记录 以下内容来源其他博文: 在使用OKHttp之前,首先要先了...

某杰
09/28
0
0
Android 网络框架 OKHttp

概述 OKhttp是一个网络请求开源项目,Android网络请求轻量级框架,支持文件上传与下载,支持https,由移动支付Square公司贡献。 依赖 compile 'com.squareup.okhttp3:okhttp:3.8.1' Get请求 ...

xi阳
09/04
0
0
说说在 Android 中如何发送 HTTP 请求

客户端会向服务器发出一条 HTTP 请求,服务器收到请求后会返回一些数据给客户端,然后客户端再对这些数据进行解析与处理。 1 HttpURLConnection 可以使用 HttpURLConnection(官方推荐) 来发...

deniro
06/09
0
0
Xutils, OKhttp, Volley, Retrofit对比

Xutils这个框架非常全面,可以进行网络请求,可以进行图片加载处理,可以数据储存,还可以对view进行注解,使用这个框架非常方便,但是缺点也是非常明显的,使用这个项目,会导致项目对这个框...

安卓笔记侠
08/17
0
0
使用Android API最佳实践

本文由 伯乐在线 - imesong 翻译自 meetme。欢迎加入Android小组。转载请参见文章末尾处的要求。 写在前面 现在,Android应用程序中集成第三方API已十分流行。应用程序都有自己的网络操作和缓...

mingxun
2014/04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题

现在用Swagger来生成API文档的例子已经非常多了,今天碰到开发同事问了一个问题,帮着看了一下,主要还是配置方法的问题,所以记录一下。如果您也碰到了同样的问题,希望本文对您有用。 问题...

程序猿DD
14分钟前
0
0
sql 命令

show variables like '%general%'; show variables like '%log_output%'; show variables like '%quer%'; show global status like '%slow%';...

JavaSon712
22分钟前
0
0
Django修改默认数据库引擎

Django默认数据库引擎为sqlite3,除了sqlite3,还支持postgresql、mysql、oracle 配置如下:其中postgresql_psycopg2为postgresql的适配器。 'django.db.backends.postgresql' 'django.db.bac......

MichaelShu
27分钟前
0
0
动画源码解析

目录介绍 1.Animation和Animator区别 2.Animation运行原理和源码分析 2.1 基本属性介绍 2.2 如何计算动画数据 2.3 什么是动画更新函数 2.4 动画数据如何存储 2.5 Animation的调用 3.Animator...

潇湘剑雨
33分钟前
1
0
Mac OS 最强鼠标改键软件:BetterAndBetter

官网: http://www.better365.cn 话不多说,先上你们最喜欢的软件界面截图。 通用: 触摸板: 鼠标: 键盘: 情景模式: 文本跳窗(自动跳窗): 四角触发: 工具箱: 脚本: 关于: 说下我目...

故国有明
57分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部