android客户端与php服务器的json数据简单交互(一)

本文是阐述android客户端与php服务器简单的交互。重点在于采用json数据格式的方式进行传递数据,为基础文章。

首先是android客户端。这里因为涉及到网络通信,所以我们需要采用http的通信协议与服务器交互,因为这里的数据

涉及到一些密码之类的,所以我们采用POST方式。另外注意一点的是,我们获取通信过程最好不要在主线程中进行,最

好是另外开辟一个线程进行获取数据的工作,这样假如获取数据失败之后程序仍然可以运行。

下面是客户端的部分代码,,我将获取数据的部分代码写成了一个函数,如果返回值为true的话则成功从服务器获得数据。这个函数如在实际代码

中应用应该在一个线程中调用。

private boolean getJson(){boolean result = false;HttpClient httpClient = new DefaultHttpClient();//这里是你与服务器交互的地址String validateUrl = "";//设置链接超时httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);//设置读取超时httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000);HttpPost httpRequst = new HttpPost(validateUrl);//准备传输的数据List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();params.add(new BasicNameValuePair("user", "lewis"));params.add(new BasicNameValuePair("password", "123"));try{//发送请求httpRequst.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));//得到响应HttpResponse response = httpClient.execute(httpRequst);//返回值如果为200的话则证明成功的得到了数据if(response.getStatusLine().getStatusCode() == 200){StringBuilder builder = new StringBuilder();//将得到的数据进行解析BufferedReader buffer = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));for(String s =buffer.readLine(); s!= null; s = buffer.readLine()){builder.append(s);}System.out.println(builder.toString());//得到Json对象JSONObject jsonObject = new JSONObject(builder.toString());//通过得到键值对的方式得到值id = jsonObject.getInt("user_id");userName = jsonObject.getString("user_name");password = jsonObject.getString("password");//在线程中判断是否得到成功从服务器得到数据result = true;}} catch (Exception e){e.printStackTrace();}return result;}

接着就是服务器部分的代码了,本来是应该与Mysql数据库进行交互的,但是这里的重点是json数据的交互,所以我们就假设得到了数据库中的数据进行测试。

<?php//这里应该是是从Mysql数据库中得到相应的数据,//这里仅仅是模拟过程,不再写相应的数据库交互代码$username = str_replace(" ", "", $_POST[‘user’]);$password = str_replace(" ", "", $_POST[‘password’]);$id = 1;//将数据存储到数据中$arr = array(‘user_id’ => $id,’user_name’=>$username,’password’ =>$password);//将数组转成json格式进行传递$strr = json_encode($arr);echo($strr);?>

注意一点的是,因为采用json传输数据叫传统的xml传输数据更加简便和快捷,所消耗的资源也更小,小型项目采用json格式传输数据越来越常见

则自PHP5.2之后设计者就将json数据格式整合到了php中,与数组之间的转换非常方便(众所周知php数组也是非常方便的)。

如是将数组转成json,则采用用方法 json_encode(), 如将json转成php数组则直接用 json_decode() //就是转码和解码嘛~

这也仅仅是json用法的最简单的部分,其他用法以后再介绍~

If there is any mistake in the article, please feel free to point it out! I would be really appreciate.

版权声明:本文为博主原创文章,未经博主允许不得转载。

人之所以能,是相信能。

android客户端与php服务器的json数据简单交互(一)

相关文章:

你感兴趣的文章:

标签云: