安卓和php通过json交互,Android PHP 通过JSON进行数据交互

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

1、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 arrayList = new ArrayList();

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端代码

$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 不剃头的一休哥)。

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

HTML和json的数据交互

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值