這篇文章主要介紹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 fields if (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(); }); } } } } }
相關推薦:
PHP使用file_get_contents發送http請求功能簡單
PHP自訂函數判斷是否為Get、Post及Ajax提交的方法
以上是xamarin怎麼用get的方法將json值傳給php服務端登入頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!