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

WBOY
Freigeben: 2016-08-08 09:23:47
Original
1461 Leute haben es durchsucht

突然想到这样一个功能,用户使用某客户端登陆的时候,客户端做了以下两件事,一个是跳转页面,返回个人信息;第二个是将信息返回到服务器,服务器将数据保存在数据库中。这样一来用户的个人信息也就获取到了!

事不宜迟赶快实现吧!

正好我的SAE云豆还没有消耗完,我就打算用PHP做后台!

客户端与服务端传送现在比较流行传递Json字符串!(还好之前了解过Json),android将数据包装成Json格式,然后通过Httpclient发送给PHP后台,php根据属性名得到Json字符串,然后做出解析,最后保存(MySQL)流程就是这样。

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

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

<span style="font-family:Microsoft YaHei;font-size:14px;">Gson gson = new Gson();
gson.toJson(user))
</span>
Nach dem Login kopieren
转换格式非常简单,不做太多介绍

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

<span style="font-family:Microsoft YaHei;font-size:14px;">/**
	 * 
	 * 描述 向后台发送user数据
	 * @param user
	 */
	<span style="font-family:Times New Roman;">public static void SaveDataToPhp(User user){
		Gson gson = new Gson();
		String url = "http://bmhjqs.sinaapp.com/ChzuAppDate/chzu_user_save.php";  
		HttpPost httpRequest = new HttpPost(url);  

		List<namevaluepair> params = new ArrayList<namevaluepair>();  
		params.add(new BasicNameValuePair("userJson", gson.toJson(user)));  
		try {  
			HttpEntity httpEntity = new UrlEncodedFormEntity(params,"utf-8");  
			httpRequest.setEntity(httpEntity);  
			HttpClient httpClient = new DefaultHttpClient();  
			HttpResponse httpResponse = httpClient.execute(httpRequest);  
			if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){  
				String result = EntityUtils.toString(httpResponse.getEntity());  
				Log.i("save", result);
			}else{  
			}  
		} catch (UnsupportedEncodingException e) {  
			e.printStackTrace();  
		} catch (ClientProtocolException e) {  
			e.printStackTrace();  
		} catch (IOException e) {  
			e.printStackTrace();  
		}  
	}</namevaluepair></namevaluepair></span>
</span>
Nach dem Login kopieren
此时,数据开始发送到PHP了

第三步:接收Json数据

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

<span style="font-family:Microsoft YaHei;font-size:14px;">//接受客户端传来的json数据
<span style="font-family:Times New Roman;">$json_string = $_POST ["userJson"];
$user = json_decode ( $json_user );

if (ini_get ( "magic_quotes_gpc" ) == "1") {
	$json_string = stripslashes ( $json_string );
}</span>
$user = json_decode ( $json_string, true );//必须加参数‘true’,否则PHP不认为$user是个数组</span>
Nach dem Login kopieren
需要注意的写在注释里了,到此,就可以通过array[key]的方法来获取值了;

第四步:保存数据

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

<span style="font-family:Microsoft YaHei;font-size:14px;">// 开始保存到数据库
<span style="font-family:Times New Roman;">$link = mysql_connect ( SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS );
if ($link) {
	mysql_select_db ( SAE_MYSQL_DB, $link );
	//根据ID判断数据库里是否存在
	$isExit = "查询语句";	
	$result = mysql_query($isExit);
	if(mysql_num_rows($result) </span></span>
Nach dem Login kopieren
第五步:测试

测试成功,数据可以正常的保存!

如果客观感觉有用的话,点个赞。。。我会更加的努力

如果有不对的地方还请指出,我会改正!

以上就介绍了Android与PHP交互,Android传递JSON数据,PHP接受并保存数据,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!