xamarin怎樣用get的方法將json值傳給php服務端登入頁

來源:互聯網
上載者:User
本篇文章主要介紹xamarin怎樣用get的方法將json值傳給php服務端登入頁,感興趣的朋友參考下,希望對大家有所協助。

最近,抽空寫了個用xamarin寫個android傳json給php服務端的程式,作為登入頁使用,需要system.json組件,php端直接get到資料放進json裡,不多說了,上代碼,先搞個php服務端的,區域網路內可以跨網段使用,親測。

這是服務端上 6.php頁面代碼

<?php// array for JSON response$response = array();// check for required fieldsif (isset($_GET['name']) && isset($_GET['password']) ){     $name = $_GET['name'];   $pwd = $_GET['password'];   if($name=="aaa" & $pwd=="222")    {       // successfully inserted into database       $response["success"] = 1;       $response["message"] = "sucess";       // echoing JSON response       echo json_encode($response);       $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");$txt = "成功";fwrite($myfile, $txt);fclose($myfile);   }    else    {       // failed to insert row       $response["success"] = 0;       $response["message"] = "name or password is wrong";              // echoing JSON response       echo json_encode($response);         $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");$txt = "使用者名稱或密碼錯誤";fwrite($myfile, $txt);fclose($myfile);   }} else {   // required field is missing   $response["success"] = 0;   $response["message"] = "the require is not compition ";   // echoing JSON response   echo json_encode($response);    $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");$txt = "缺少";fwrite($myfile, $txt);fclose($myfile);   }?>

xamarin安卓端的代碼如下:


先來個ui介面的代碼

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/linearLayout1">        <TextView            android:text="使用者名稱:"            android:textAppearance="?android:attr/textAppearanceLarge"            android:layout_width="wrap_content"            android:layout_height="match_parent"            android:id="@+id/textView1" />        <EditText            android:inputType="textMultiLine"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:id="@+id/editText1" />    </LinearLayout>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/linearLayout3">        <TextView            android:text="密碼:"            android:textAppearance="?android:attr/textAppearanceLarge"            android:layout_width="wrap_content"            android:layout_height="match_parent"            android:id="@+id/textView2" />        <EditText            android:inputType="date"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:id="@+id/editText2" />    </LinearLayout>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/linearLayout2"        android:gravity="center">        <Button            android:text="登入"            android:layout_width="wrap_content"            android:layout_height="match_parent"            android:id="@+id/button1" />    </LinearLayout></LinearLayout>

MainActivity.cs的代碼

using Android.App;using Android.Widget;using Android.OS;using System.Json;using System.Net;using System.IO;using System;using Android.Content;using System.Linq;namespace App10{    [Activity(Label = "App10", MainLauncher = true)]    public class MainActivity : Activity    {        Button btn_login;        EditText txt_name;        EditText txt_pwd;        protected override void OnCreate(Bundle savedInstanceState)        {            base.OnCreate(savedInstanceState);            // Set our view from the "main" layout resource            SetContentView(Resource.Layout.Main);            btn_login = FindViewById<Button>(Resource.Id.button1);            txt_name = FindViewById<EditText>(Resource.Id.editText1);            txt_pwd = FindViewById<EditText>(Resource.Id.editText2);            btn_login.Click += Btn_lgoin_Click;        }        private void Btn_lgoin_Click(object sender, System.EventArgs e)        {            string name = txt_name.Text;            string pwd = txt_pwd.Text;            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pwd))            {                Toast.MakeText(this, "請輸入使用者名稱和密碼!!", ToastLength.Long).Show();                return;            }            else            {                 //JSON請求URL GET的方式                string url = "http://192.168.0.45:8081/jsontest/6.php?name="+name+"&password="+pwd;                //建立一個請求                var httpReq = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));              httpReq.BeginGetResponse(new AsyncCallback(ReadXamarin), httpReq);            }        }        //非同步回調方法         public void ReadXamarin(IAsyncResult asyn)         {             var httpReq = (HttpWebRequest)asyn.AsyncState;                        //擷取響應            using (var httpRes = (HttpWebResponse) httpReq.EndGetResponse(asyn))             {                 //判斷是否成功擷取響應               if (httpRes.StatusCode == HttpStatusCode.OK)                 {                     //讀取響應                     var text = new StreamReader(httpRes.GetResponseStream()).ReadToEnd();                     //切換到UI線程,否則無法對控制項進行操作                     RunOnUiThread(() =>                     {                         Toast.MakeText(this, text, ToastLength.Long).Show();                     });                }             }        }}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.