This article mainly introduces how xamarin uses the get method to pass the json value to the php server login page. Friends who are interested can refer to it. I hope it will be helpful to everyone.
Recently, I took the time to write a program using xamarin to transfer json from android to the php server. It is used as a login page and requires the system.json component. The php side directly gets the data and puts it into json. Not much to say. Now, on to the code, first make a php server. It can be used across network segments in the local area network. I will test it myself.
This is the 6.php page code on the server
<?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 Android code is as follows:
First come the code of the ui interface
<?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 code
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(); }); } } } } }
Related recommendations:
Detailed introduction and usage of file_get_contents function
PHP uses file_get_contents to send http request function is simple
PHP custom function determines whether it is Get, Post and Ajax submission method
The above is the detailed content of How does xamarin use the get method to pass the json value to the php server login page. For more information, please follow other related articles on the PHP Chinese website!