> 백엔드 개발 > PHP 튜토리얼 > Android는 PHP와 상호작용하고 Android는 JSON 데이터를 전달하며 PHP는 데이터를 수락하고 저장합니다.

Android는 PHP와 상호작용하고 Android는 JSON 데이터를 전달하며 PHP는 데이터를 수락하고 저장합니다.

WBOY
풀어 주다: 2016-08-08 09:23:47
원래의
1534명이 탐색했습니다.

갑자기 이런 기능이 생각났습니다. 사용자가 특정 클라이언트를 사용하여 로그인하면 클라이언트는 다음 두 가지 작업을 수행합니다. 하나는 페이지로 이동하여 개인 정보를 반환하는 것입니다. 서버에 정보를 저장합니다. 이런 방식으로 사용자의 개인정보도 취득하게 됩니다!

더 이상 지체하지 않고 성사시키자!

아직 SAE Cloud Bean을 다 사용하지 않아서 PHP를 백엔드로 사용할 계획입니다!

이제 클라이언트와 서버 간에 Json 문자열을 전달하는 것이 더 인기가 있습니다! (다행히 저는 Json에 대해 이전에 배웠습니다.) Android는 데이터를 Json 형식으로 패키징한 다음 Httpclient를 통해 PHP 백엔드로 보냅니다. PHP는 속성 이름을 기반으로 Json 문자열을 가져온 다음 이를 구문 분석하고 최종적으로 저장합니다( MySQL) 과정입니다.

1단계: Android 클라이언트가 Json 형식 데이터를 캡슐화합니다.

먼저, 전송하려는 데이터를 Json 형식 데이터로 캡슐화할 수 있습니다. 저는 Gson을 사용합니다. 전송하려는 코드는 다음과 같습니다.

<span style="font-family:Microsoft YaHei;font-size:14px;">Gson gson = new Gson();
gson.toJson(user))
</span>
로그인 후 복사
형식 변환은 별다른 소개 없이 매우 간단합니다

2단계: 로그인 반환 스레드에 비동기 메서드 작성(물론 다음 위치에서 호출하려고 합니다) 비동기가 괜찮다면 로그인 정보를 반환할 때 비동기 작업을 트리거하고 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();  
		}  
	}</span>
</span>
로그인 후 복사
이때, 데이터가 PHP로 전송되기 시작합니다

3단계: Json 데이터 수신

php에서 값을 가져옵니다. Key 매개변수를 통해 코드는 다음과 같습니다.

<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>
로그인 후 복사
주의해야 할 내용은 주석에 적혀 있습니다. array[key] method;

4단계: 데이터 저장

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) < 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>
로그인 후 복사
5단계: 테스트

테스트에 성공하여 데이터를 정상적으로 저장할 수 있습니다!

객관적으로 유용하다고 생각하시면 좋아요를 눌러주세요. . . 더 열심히 하겠습니다

잘못된 점이 있으면 지적해주시면 수정하겠습니다!

위 내용은 Android와 PHP 간의 상호 작용을 소개하며, Android는 JSON 데이터를 전송하고 PHP는 콘텐츠 측면을 포함하여 데이터를 수락하고 저장합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿