一、首先是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. 使用C++读写Excel

    1.导入Excel类型库 使用Visual C++的扩展指令#import导入Excel类型库: 1 2 3 4 5 6 7 8 9 10 11 12 #import "C:\\Progra ...

  2. IOS中微博正文开发步骤总结

    微博正文开发步骤总结 1.新建正文控制器,在点击首页的某一条微博时跳转过去 2.在MainController中设置导航控制器的代理,监听所有导航控制器的跳转 1> 如果即将显示的不是根控制器 ...

  3. Linux下Web服务器环境搭建LNMP一键安装包[20130911更新]

    2012年08月14日 ⁄ LNMP ⁄ 评论数 73 ⁄ 被围观 25,200次+ 最新版本:lnmp-2.4 安装说明:请保证服务器能够正常上网.服务器系统时间准确.yum命令可以正常使用! 1. ...

  4. erl_0013 erlang 带参数模块 parameterized modules are no longer supported

    code: -module(mod_test, [Name]). -export([show/0]). show() -> io:format("show:~p~n",[Na ...

  5. SPY++的使用

    百度百科Spy++ 使用的是VS2010.net自带的功能,可以从开始菜单中打开.

  6. java中正则表达式的应用

    java.util.regex   Pattern的应用 public static void main(String[] args) { //简单的正则匹配.从给定的字符串中匹配正则表达式 //匹配 ...

  7. python numpy sum函数用法

    numpy.sum numpy.sum(a, axis=None, dtype=None, out=None, keepdims=False)[source] Sum of array element ...

  8. 502 Bad Gateway nginx 解决

    打开 /usr/local/php/etc/php-fpm.conf 调大以下两个参数(根据服务器实际情况,过大也不行) <value name=”max_children”>5120&l ...

  9. 利用COPYDATASTRUCT传递命令行参数给驻留内存的进程(SendMessage应用)

    我们知道Window进程之间通过API的SendMessage方法传递消息.但是方法参数lParam是Long型,那么如果传递一个字符串(譬如命令行参数)应该怎么办呢,甚至一个对象.结构呢.VB的发送 ...

  10. Bootstrap学习笔记上(带源码)

    阅读目录 排版 表单 网格系统 菜单.按钮 做好笔记方便日后查阅o(╯□╰)o bootstrap简介: ☑  简单灵活可用于架构流行的用户界面和交互接口的html.css.javascript工具集 ...