一、首先是Android客户端解析PHP返回的JSON数据

1、PHP代码(这里用到了数据库,如果没有准备数据库的话,可以自定义字符串)

<?php
$link=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
mysql_query("SET NAMES utf8");
mysql_select_db(SAE_MYSQL_DB,$link);
$sql=mysql_query("select * from users ",$link);
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
echo json_encode($output);
mysql_close();
?>

2、Android端代码(部分代码)

private Boolean checkuser(String url, String username, String password) {
int res = 0;
HttpClient client = new DefaultHttpClient();
StringBuilder str =new StringBuilder();
HttpGet httpget = new HttpGet(url);
BufferedReader buffer = null;
try
{
HttpResponse httpRes = client.execute(httpget);
res = httpRes.getStatusLine().getStatusCode();
if(res == 200)
{
buffer = new BufferedReader(new InputStreamReader(httpRes.getEntity().getContent()));
for(String s = buffer.readLine();s != null;s = buffer.readLine())
{
str.append(s);
}
buffer.close();
JSONArray json = new JSONArray(str.toString());
String struser = "";
String strpass = "";
for(int i = 0;i < json.length();i++)
{
JSONObject jsonObject = (JSONObject)json.opt(i);
struser = jsonObject.getString("username");
strpass = jsonObject.getString("password");
if(struser.equals(username)&&strpass.equals(password))
{
return true;
}
}
return false;
}
else
{
Log.v(null, "httperror");
return false;
}
}catch(Exception e)
{
e.printStackTrace();
return false;
}
}

这不是重点,重点在下面PHP解析Android发送的JSON数据  

二、PHP解析Android发送的JSON数据

1、Android端代码(部分)

Boolean RegUser(String url,String regname, String regpass) {
ArrayList<NameValuePair> arrayList = new ArrayList<NameValuePair>();
arrayList.add(new BasicNameValuePair("username", regname));
arrayList.add(new BasicNameValuePair("password",regpass));
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(arrayList));
HttpResponse httpres = httpclient.execute(httppost);
return true;
}catch(Exception e)
{
e.printStackTrace();
return false;
} }  

整个发送过程尤其重要!!!!!并且容易出错。

2、PHP端代码

<?php
$name = $_REQUEST['username'];
$pass = $_REQUEST['password'];
$link=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
mysql_query("SET NAMES utf8");
mysql_select_db(SAE_MYSQL_DB,$link);
$sql = "insert into users (username,password) values ('$name','$pass')";
mysql_query($sql,$link);
mysql_close($link);
?>

这里接收客户端JSON数据用的是REQUEST,和POST的区别不是很清楚。

总结:

1、找了一下午,最后发现问题应该是客户端发送数据不成功。

2、也有可能是我之前用的是POST接收。

3、代码出问题还是不要找我,虽然是我写的,但是它自己长歪了。

4、如果转载,请注明出处(by 不剃头的一休哥)。  

Android PHP 通过JSON进行数据交互的更多相关文章

  1. HTML和JSON的数据交互-jsonp跨域

    HTML和json的数据交互 <!DOCTYPE html> <html> <head> <script src="//ajax.googleapi ...

  2. HTML和JSON的数据交互-HTML模板

    直接上源码,原文http://www.zhangxinxu.com/wordpress/2012/09/javascript-html-json-template/ <!DOCTYPE html ...

  3. 实现android上解析Json格式数据功能

    实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...

  4. android实现两个activity数据交互

    android如何实现两个Activity数据交互?主要是根据Intent的携带功能,intent可以携带很多信息,比如Bundle,URI甚至对象(此时要序列化,并且对象里面的成员变量如果是对象,也 ...

  5. 测开之路一百五十四:ajax+json前后台数据交互

    在实际工作中,前后端数据交互大部分都是用的json格式,后端把数据处理完后,把json传给前端,前端再解析 项目结构 models里面加入把数据转为字典的方法 from datetime import ...

  6. springmvc+json 前后台数据交互

    1. 配置(1) 文件配置参考这里(2) 导入jackson相关包:jackson-annotations-2.9.4.jar,jackson-core-2.9.4.jar,jackson-datab ...

  7. Android和.net API的数据交互

    一..net API 一般的页面都是.aspx文件,由于.aspx文件都带有HTML的格式,我们传递的都是json格式的数据,所以html页面格式对json格式有影响,故而我们写Web-API都不会采 ...

  8. Android上解析Json格式数据

    package com.practice.json; import org.json.JSONArray; import org.json.JSONException; import org.json ...

  9. Android中解析JSON格式数据常见方法合集

    待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...

随机推荐

  1. jquery ajax GET POST 跨域请求实现

    同一段逻辑代码需要在多个网站中使用, 每个网站都新建一个ashx真是扯蛋的作法,  所以想只请求一处的ashx, 这样便于维护和修改, 那么,ajax跨域问题就来了. 废话少说, 直接上代码,  我现 ...

  2. Python 删除 数组

    numpy删除一列 从0开始,第三个参数是第几个维度  可以多删几个 

  3. 【Android】SDK工具学习 - bmgr

    bmgr官方文档 我自己的理解就是bmgr也是一款命令行工具,主要操作Android设备中的Backup Manager(支持API8.0以上的ADT) 主要就是备份(Backup)和还原(Resto ...

  4. VPS的虚拟化技术—-XEN,KVM,OPENVZ

    市场上的VPS商家主要有 Xen ,KVM 和 OpenVZ 三种开源的虚拟化技术 Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达 100个满特征的操作系统.操作系 ...

  5. 【转】IOS 开发环境,证书和授权文件等详解

    (转自:http://blog.csdn.net/gtncwy/article/details/8617788) 一.成员介绍1.    Certification(证书)证书是对电脑开发资格的认证, ...

  6. POI取消科学计数法

    前台输入手机号13777777777,如果是为Double类型接收,就会自动转为科学计数法 找了下,一般是Double转String,方法一般有两种: 1.利用String.format() sale ...

  7. jdbc操作数据库返回结果集的注意事项

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  8. 多种css3时尚侧栏菜单展开显示效果Off-Canvas Menu Effects

    今天我们想分享多种css3时尚侧栏菜单展开显示效果.侧边栏应用广泛,我们之前已经产生了一些效果灵感.风格演变,今天我们要展示一套新的灵感的现代效果.不同的布局和菜单的同步转换和页面可以让一切看起来更有 ...

  9. matlab 调用VLfeat库开篇问题

    准备工作见此网站 :http://cnyubin.com/?p=85 保存关闭startup.m文件后 重新打开matlab后 在命令行输入path或者vl_version无法检测到库已安装到matl ...

  10. strcpy基本用法

    C语言标准库函数strcpy,把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间. C语言函数 原型声明:extern char *strcpy(char* dest, co ...