إذا كنت تستخدم وتعمل كثيرا على تطبيقات أندرويد فلابد أنك تتساءل كيف يتم ربط وجلب معلومات من قواعد بيانات mysql إلى التطبيقات ، لذلك هناك طريقتين واحدة تعرض المعلوامت المرسلة في 2048 بيت وهي ما تسمى GET والأخرى لا تظهر المعلومات بل تمررها مخفية ومشفرة ويمكن إرسال عدد لا نهائي من البايتات وهي ما تسمى POST .
أول عليك اضافة الكود داخل build.gradle لكي تربط تطبيقك مع موقع يستخدم PHP
api 'com.android.volley:volley:1.1.0'
بعد ذلك هناك طريقتين لتبادل المعلومات وجلب المعلومات من صفحات PHP باستخدتم GET و POST ، ولجلب المعلومات للتطبيق عليك استخدام مصفوفة JSON-CODE داخل التطبيق و PHP .
أمر الذي ستخدمته داخل صفحة PHP .
سميت ملف باسم test.php ووضعنه على سيرفر شخصي باستخدام 127.0.0.1 ووضعت هذا الكود
<?php query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $heroes["user"] = $username ; $heroes["id"] = $row["userid"] ; } $heroes["email"] = $row["email"] ; } else { echo "0 results"; } ?> $conn->close(); echo json_encode($heroes); ?>
الكود االتالي على java هو لجلب معلومات من صفحة انترنت PHP ويمكنك استخدام لتبادل المعلومات باستخدام GET
public void get_array_IP() { // get country user String URL_PRODUCTS_IP = "http://192.168.1.33/test.php" ; // site info ip in array json JSONObject object = new JSONObject(); try { //input your API parameters object.put("parameter","value"); object.put("parameter","value"); } catch (JSONException e) { e.printStackTrace(); } final StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_PRODUCTS_IP, new Response.Listener() { @Override public void onResponse(String response) { try { JSONObject jsonResponse = new JSONObject(response); String id_question = jsonResponse.getString("id"); // get Country User Toast.makeText(MainActivity.this, ""+id_question, Toast.LENGTH_SHORT).show(); } catch (JSONException e) { Toast.makeText(MainActivity.this, "error Get DATA", Toast.LENGTH_SHORT).show(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(MainActivity.this, "error", Toast.LENGTH_SHORT).show(); } }); //adding our stringrequest to queue Volley.newRequestQueue(this).add(stringRequest); }
الكود الموالي على java استخدمت POST ويمكنك تبدال المعلومات كيف تريد وارسال بينات لتخزينها مثلا على قاعدة بينات MYSQL
public void get_array_post() { // get country user
RequestQueue queue = Volley.newRequestQueue(this); //for POST requests, only the following line should be changed to StringRequest sr = new StringRequest(Request.Method.POST, "http://192.168.1.33/test.php", new Response.Listener() { @Override public void onResponse(String response) { Log.e("HttpClient", "success! response: " + response.toString()); try { JSONObject jsonResponse = new JSONObject(response); String id_question = jsonResponse.getString("id"); // get Country User String user = jsonResponse.getString("user"); // get Country User Toast.makeText(MainActivity.this, ""+id_question + " " +user, Toast.LENGTH_SHORT).show(); } catch (JSONException e) { Toast.makeText(MainActivity.this, "error Get DATA", Toast.LENGTH_SHORT).show(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("HttpClient", "error: " + error.toString()); } }) { @Override protected Map getParams(){ Map params = new HashMap(); params.put("user","YOUR USERNAME"); params.put("pass","YOUR PASSWORD"); return params; } @Override public Map getHeaders() throws AuthFailureError { Map params = new HashMap(); params.put("Content-Type","application/x-www-form-urlencoded"); return params; } }; queue.add(sr); }
تعليقات
إرسال تعليق