Android与PHP交互,Android传递JSON数据,PHP接受并保存数据

第一步:Android客户端封装Json格式数据

首先把你想要传送的数据封装成Json格式的数据,可以使用Json包或者Gson,我用的是Gson,我想要传送的是User对象,代码如下:

 

[java] view plain copy

  1. <span style="font-family:Microsoft YaHei;font-size:14px;">Gson gson = new Gson();  
  2. gson.toJson(user))  
  3. </span>  

转换格式非常简单,不做太多介绍

 

第二步:在登录返回线程中写个异步方法(当然了,你想在任何时候调用异步都行,我就放在返回登录信息的时候触发异步任务),异步任务里调用Httpclient发送请求的方法,代码如下:

 

[java] view plain copy

  1. <span style="font-family:Microsoft YaHei;font-size:14px;">/** 
  2.      *  
  3.      * 描述 向后台发送user数据 
  4.      * @param user 
  5.      */  
  6.     <span style="font-family:Times New Roman;">public static void SaveDataToPhp(User user){  
  7.         Gson gson = new Gson();  
  8.         String url = "http://bmhjqs.sinaapp.com/ChzuAppDate/chzu_user_save.php";    
  9.         HttpPost httpRequest = new HttpPost(url);    
  10.   
  11.         List<NameValuePair> params = new ArrayList<NameValuePair>();    
  12.         params.add(new BasicNameValuePair("userJson", gson.toJson(user)));    
  13.         try {    
  14.             HttpEntity httpEntity = new UrlEncodedFormEntity(params,"utf-8");    
  15.             httpRequest.setEntity(httpEntity);    
  16.             HttpClient httpClient = new DefaultHttpClient();    
  17.             HttpResponse httpResponse = httpClient.execute(httpRequest);    
  18.             if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){    
  19.                 String result = EntityUtils.toString(httpResponse.getEntity());    
  20.                 Log.i("save", result);  
  21.             }else{    
  22.             }    
  23.         } catch (UnsupportedEncodingException e) {    
  24.             e.printStackTrace();    
  25.         } catch (ClientProtocolException e) {    
  26.             e.printStackTrace();    
  27.         } catch (IOException e) {    
  28.             e.printStackTrace();    
  29.         }    
  30.     }</span>  
  31. </span>  

此时,数据开始发送到PHP了

 

第三步:接收Json数据

在php中,通过参数Key来获取Value,代码如下:

 

[php] view plain copy

  1. <span style="font-family:Microsoft YaHei;font-size:14px;">//接受客户端传来的json数据  
  2. <span style="font-family:Times New Roman;">$json_string = $_POST ["userJson"];  
  3. $user = json_decode ( $json_user );  
  4.   
  5. if (ini_get ( "magic_quotes_gpc" ) == "1") {  
  6.     $json_string = stripslashes ( $json_string );  
  7. }</span>  
  8. $user = json_decode ( $json_string, true );//必须加参数‘true’,否则PHP不认为$user是个数组</span>  

需要注意的写在注释里了,到此,就可以通过array[key]的方法来获取值了;

 

第四步:保存数据

我将数据保存在SAE下的Mysql数据库,代码如下:

 

[php] view plain copy

  1. <span style="font-family:Microsoft YaHei;font-size:14px;">// 开始保存到数据库  
  2. <span style="font-family:Times New Roman;">$link = mysql_connect ( SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS );  
  3. if ($link) {  
  4.     mysql_select_db ( SAE_MYSQL_DB, $link );  
  5.     //根据ID判断数据库里是否存在  
  6.     $isExit = "查询语句";     
  7.     $result = mysql_query($isExit);  
  8.     if(mysql_num_rows($result) < 1){  
  9.         $sql = "插入语句...";  
  10.         mysql_query ( 'set names utf-8' );  
  11.         mysql_query ( $sql );  
  12.         echo 'STATE_OK';  
  13.     }else{  
  14.         echo 'STATE_EXIST';  
  15.     }  
  16.     mysql_close ( $link );  
  17. } else {  
  18.     echo 'STATE_DB_FAIL';  
  19. }</span></span>  

第五步:测试

转载于:https://my.oschina.net/ming0929/blog/737230

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值