xamarin怎样用get的方法将json值传给php服务端登录页
May 15, 2018 pm 04:46 PM本篇文章主要介绍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提交的方法
Atas ialah kandungan terperinci xamarin怎样用get的方法将json值传给php服务端登录页. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah perbezaan antara MySQL5.7 dan MySQL8.0?

Petua pengoptimuman prestasi untuk menukar tatasusunan PHP kepada JSON

Bagaimanakah anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahsirilan JSON?

Tutorial penggunaan Panda: Permulaan pantas untuk membaca fail JSON

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP

Pemahaman mendalam tentang PHP: Kaedah pelaksanaan menukar Unicode JSON kepada bahasa Cina

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah

Petua pantas untuk menukar tatasusunan PHP kepada JSON
