文档章节

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

pearl2015
 pearl2015
发布于 2016/05/23 18:25
字数 505
阅读 374
收藏 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);

    ?>

```

 

© 著作权归作者所有

共有 人打赏支持
下一篇: bugs
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

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
48分钟前
3
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
6
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
6
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
5
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部