android客户端与php服务器的json数据简单交互(一)
2014-04-21 21:49
344 查看
本文是阐述android客户端与php服务器简单的交互。重点在于采用json数据格式的方式进行传递数据,为基础文章。
首先是android客户端。这里因为涉及到网络通信,所以我们需要采用http的通信协议与服务器交互,因为这里的数据
涉及到一些密码之类的,所以我们采用POST方式。另外注意一点的是,我们获取通信过程最好不要在主线程中进行,最
好是另外开辟一个线程进行获取数据的工作,这样假如获取数据失败之后程序仍然可以运行。
下面是客户端的部分代码,我将获取数据的部分代码写成了一个函数,如果返回值为true的话则成功从服务器获得数据。这个函数如在实际代码
中应用应该在一个线程中调用。
接着就是服务器部分的代码了,本来是应该与Mysql数据库进行交互的,但是这里的重点是json数据的交互,所以我们就假设得到了数据库中的数据进行测试。
注意一点的是,因为采用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客户端。这里因为涉及到网络通信,所以我们需要采用http的通信协议与服务器交互,因为这里的数据
涉及到一些密码之类的,所以我们采用POST方式。另外注意一点的是,我们获取通信过程最好不要在主线程中进行,最
好是另外开辟一个线程进行获取数据的工作,这样假如获取数据失败之后程序仍然可以运行。
下面是客户端的部分代码,我将获取数据的部分代码写成了一个函数,如果返回值为true的话则成功从服务器获得数据。这个函数如在实际代码
中应用应该在一个线程中调用。
private boolean getJson() { boolean result = false; HttpClient httpClient = new DefaultHttpClient(); //这里是你与服务器交互的地址 String validateUrl = "http://192.168.191.1/YCM/testjson.php"; //设置链接超时 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数据简单交互(一)
- android客户端与php服务器的json数据简单交互(二)
- Android客户端和php+mysql+apache搭建的服务器之间的简单交互
- Android开发使用json实现服务器与客户端数据的交互功能示例
- Android开发:客户端与服务器通过传递和接收json数据进行交互
- Android客户端使用HttpURLConnection doGet与服务器数据交互简单示例
- Android客户端与服务器HTTP交互,数据以json格式传输
- Android 使用Json实现服务器与客户端数据的交互
- 使用Json数据进行服务器与android端交互
- Android客户端与服务器端的json数据交互(很详细)
- Android客户端获取服务器的json数据(二)
- Android简单实现Socket通信,客户端连接服务器后,服务器向客户端发送文字数据
- Android客户端配合Servlert服务端实现简单的数据交互
- Android客户端与服务器端的json数据交互(很详细)
- Android App端与PHP Web端的简单数据交互实现示例
- Android客户端与服务器端的json数据交互(很详细)
- Android - 服务器json数据交互.
- Android学习——Android实现与php服务器的json交互
- android客户端与javaweb服务器端数据通信-Post-Json格式数据
- android 与 php交互 获取复杂json数据 +正在加载效果理解