갑자기 이런 기능이 생각났습니다. 사용자가 특정 클라이언트를 사용하여 로그인하면 클라이언트는 다음 두 가지 작업을 수행합니다. 하나는 페이지로 이동하여 개인 정보를 반환하는 것입니다. 서버에 정보를 저장합니다. 이런 방식으로 사용자의 개인정보도 취득하게 됩니다!
더 이상 지체하지 않고 성사시키자!
아직 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>
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>
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>
테스트에 성공하여 데이터를 정상적으로 저장할 수 있습니다!
객관적으로 유용하다고 생각하시면 좋아요를 눌러주세요. . . 더 열심히 하겠습니다
잘못된 점이 있으면 지적해주시면 수정하겠습니다!
위 내용은 Android와 PHP 간의 상호 작용을 소개하며, Android는 JSON 데이터를 전송하고 PHP는 콘텐츠 측면을 포함하여 데이터를 수락하고 저장합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.