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 ...
随机推荐
- (转载)UITableView使用详解
在开发iphone的应用时基本上都要用到UITableView,这里讲解一下UITableView的使用方法及代理的调用情况 UITableView使用详解 - (void)viewDidLoad { ...
- linux系统查看磁盘分区使用空间
Df命令是linux系统以磁盘分区使用空间:df -hl
- Android 系统 reboot
/*********************************************************************** * Android 系统 reboot * 说明: * ...
- php多种实例理解无限极分类
- 《Unix网络编程》卷2 读书笔记 第1章-简介
1. 概述 2. 进程.线程与信息共享 Unix进程间的信息共享有多种方式:注意下图中内核的位置 左边的两个进程共享存留于文件系统中某个文件上的某些信息.为访问这些信息,每个进程都得穿越内核. 中 ...
- Android 高仿UC浏览器监控剪切板弹出悬浮窗功能
UC浏览器应该是android手机里 最流行的浏览器之一了,他们有一个功能 相信大家都体验过,就是如果你复制了什么文字,(在其他app中 复制也有这个效果!,所以能猜到肯定是监控了剪切板),就会弹出一 ...
- 配置java环境时,java的path地址放在其他地址的前面还是后面?
PATH环境变量里是按顺序查找的,如果电脑里只有一个jdk,放哪都一样,有多个放前面的会优先. 一般是放在最前面吧,以免其他在path中的程序需要用到Java环境而由于在JAVA_PATH之前 ...
- mysql初识之数据文件及其他文件
在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式.表文件个数也会有所差异.mysql的表引擎有多种,表的扩展名也不一样,如innodb用“ .ibd ...
- AJAX overrideMimeType作用
我们经常在AJAX代码中发现如下代码: if (http_request.overrideMimeType) { http_request.overrideMimeType("te ...
- [Everyday Mathematics]20150302
$$\bex |p|<\frac{1}{2}\ra \int_0^\infty \sex{\frac{x^p-x^{-p}}{1-x}}^2\rd x =2(1-2p\pi \cot 2p\pi ...