Android PHP 通过JSON进行数据交互
一、首先是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进行数据交互的更多相关文章
- HTML和JSON的数据交互-jsonp跨域
HTML和json的数据交互 <!DOCTYPE html> <html> <head> <script src="//ajax.googleapi ...
- HTML和JSON的数据交互-HTML模板
直接上源码,原文http://www.zhangxinxu.com/wordpress/2012/09/javascript-html-json-template/ <!DOCTYPE html ...
- 实现android上解析Json格式数据功能
实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...
- android实现两个activity数据交互
android如何实现两个Activity数据交互?主要是根据Intent的携带功能,intent可以携带很多信息,比如Bundle,URI甚至对象(此时要序列化,并且对象里面的成员变量如果是对象,也 ...
- 测开之路一百五十四:ajax+json前后台数据交互
在实际工作中,前后端数据交互大部分都是用的json格式,后端把数据处理完后,把json传给前端,前端再解析 项目结构 models里面加入把数据转为字典的方法 from datetime import ...
- springmvc+json 前后台数据交互
1. 配置(1) 文件配置参考这里(2) 导入jackson相关包:jackson-annotations-2.9.4.jar,jackson-core-2.9.4.jar,jackson-datab ...
- Android和.net API的数据交互
一..net API 一般的页面都是.aspx文件,由于.aspx文件都带有HTML的格式,我们传递的都是json格式的数据,所以html页面格式对json格式有影响,故而我们写Web-API都不会采 ...
- Android上解析Json格式数据
package com.practice.json; import org.json.JSONArray; import org.json.JSONException; import org.json ...
- Android中解析JSON格式数据常见方法合集
待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...
随机推荐
- (转)FirstResponder 释放问题
FirstResponder 释放问题 转自:http://www.cnblogs.com/smileEvday/archive/2012/03/18/2405190.html View的FirstR ...
- cocoStudio UI编辑器 学习总结
一.控件 控件基类 UIWidget:所有UI控件的基类 addChild:添加UIWidget类型的节点 addRenderer:添加CCNode类型的节点 所有UIWidget,都可以设置成触摸s ...
- HDU 5339 Untitled (暴力枚举)
题意:给定一个序列,要求从这个序列中挑出k个数字,使得n%a1%a2%a3....=0(顺序随你意).求k的最小值. 思路:排个序,从大的数开始模起,这是因为小的模完还能模大的么? 每个元素可以选,也 ...
- java多线程模拟停车系统
import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent ...
- 【英语】Bingo口语笔记(66) - 美式发音特点
- Can't locate ExtUtils/MakeMaker.pm
Can't locate ExtUtils/MakeMaker.pm 解决:yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
- 【转】Bootloader之uBoot简介(转)
原文网址:http://blog.csdn.net/sadamoo/article/details/8139946 来自http://blog.ednchina.com/hhuwxf/1915416/ ...
- show engine innodb status 详解
找个mysql客户端,执行show engine innodb status得到如下结果: 详细信息如下: ************************************** ======= ...
- dzzoffice注册开启
dzzoffice默认安装注册选线是关闭的,需要在“系统设置”里打开. 设置方法 开始菜单=>系统设置=>注册与访问=> 将允许用户注册选勾,选上. 然后提交保存.
- 在VMware虚拟机中安装CentOS 7
[声明] 欢迎转载,但请保留文章原始出处 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3917 ...