Heim >Backend-Entwicklung >PHP-Tutorial >Android interagiert mit PHP, Android übergibt JSON-Daten und PHP akzeptiert und speichert die Daten

Android interagiert mit PHP, Android übergibt JSON-Daten und PHP akzeptiert und speichert die Daten

WBOY
WBOYOriginal
2016-08-08 09:23:471538Durchsuche

Mir ist plötzlich eine solche Funktion eingefallen. Wenn sich ein Benutzer mit einem bestimmten Client anmeldet, führt der Client zum einen die folgenden Schritte aus: Er springt zur Seite und gibt zum anderen die persönlichen Informationen zurück Informationen an den Server. Der Server speichert die Daten in der Datenbank. Auf diese Weise werden auch personenbezogene Daten des Nutzers erhoben!

Lassen Sie es uns ohne weitere Verzögerung geschehen!

Zufälligerweise sind meine SAE-Cloud-Beans noch nicht aufgebraucht, also habe ich vor, PHP als Backend zu verwenden!

Es ist jetzt beliebter, Json-Strings zwischen Client und Server zu übergeben! (Glücklicherweise habe ich schon einmal etwas über Json gelernt), Android packt die Daten in das Json-Format und sendet sie dann über Httpclient an das PHP-Backend. PHP ruft die Json-Zeichenfolge basierend auf dem Attributnamen ab, analysiert sie und speichert sie schließlich ( MySQL). Dies ist der Prozess.

Schritt 1: Android-Client kapselt Daten im Json-Format

Zuerst Kapseln Sie die Daten, die Sie übertragen möchten, in das Json-Format. Ich verwende Gson. Der Code lautet wie folgt:

<span style="font-family:Microsoft YaHei;font-size:14px;">Gson gson = new Gson();
gson.toJson(user))
</span>
Das Konvertieren des Formats ist sehr einfach, ohne große Einführung

Schritt 2: Schreiben Sie eine asynchrone Methode in den Login-Return-Thread (natürlich möchten Sie sie unter aufrufen). Immer wenn Asynchronität in Ordnung ist, löse ich die asynchrone Aufgabe aus, wenn ich die Anmeldeinformationen zurückgebe, und rufe die Httpclient-Methode auf, um die Anforderung in der asynchronen Aufgabe zu senden. Der Code lautet wie folgt:

<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();  
		}  
	}</span>
</span>
Zu diesem Zeitpunkt beginnen die Daten mit dem Senden an PHP

Schritt 3: Json-Daten empfangen

In PHP den Wert abrufen Über den Parameter Key lautet der Code wie folgt:

<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>
Worauf Sie achten müssen, steht in den Kommentaren. An dieser Stelle können Sie den Wert über Folgendes ermitteln array[key] method;

Schritt 4: Daten speichern

Ich speichere die Daten in der MySQL-Datenbank unter SAE, der Code lautet wie folgt folgt:

<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) < 1){
		$sql = "插入语句...";
		mysql_query ( 'set names utf-8' );
		mysql_query ( $sql );
		echo 'STATE_OK';
	}else{
		echo 'STATE_EXIST';
	}
	mysql_close ( $link );
} else {
	echo 'STATE_DB_FAIL';
}</span></span>
Schritt 5: Test

Der Test ist erfolgreich und die Daten können normal gespeichert werden!

Wenn Sie es objektiv nützlich finden, geben Sie ihm ein „Gefällt mir“. . . Ich werde härter arbeiten

Wenn etwas nicht stimmt, weisen Sie es bitte darauf hin und ich werde es korrigieren!

Das Obige stellt die Interaktion zwischen Android und PHP vor. Android überträgt JSON-Daten, und PHP akzeptiert und speichert die Daten, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
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