ホームページ  >  記事  >  バックエンド開発  >  xamarin は get メソッドをどのように使用して json 値を PHP サーバーのログイン ページに渡すのですか

xamarin は get メソッドをどのように使用して json 値を PHP サーバーのログイン ページに渡すのですか

墨辰丷
墨辰丷オリジナル
2018-05-15 16:46:191447ブラウズ

この記事では、xamarin が get メソッドを使用して php サーバーのログイン ページに json 値を渡す方法を主に紹介します。興味のある方は参考にしていただければ幸いです。

最近、xamarinを使用してjsonをAndroidからphpサーバーに転送するプログラムを作成しました。これは、php側がデータを直接取得して配置する必要があります。詳細は省略します。コードに進みます。まず、ローカル エリア ネットワーク内のネットワーク セグメント全体で使用できる php サーバーを構築し、個人的にテストします。

これはサーバー上の 6.php ページのコードです

<?php
// array for JSON response
$response = array();
// check for required fields
if (isset($_GET[&#39;name&#39;]) && isset($_GET[&#39;password&#39;]) )
{
  
   $name = $_GET[&#39;name&#39;];
   $pwd = $_GET[&#39;password&#39;];
   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 側のコードは次のとおりです:


最初に 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();
                     });
                }
             }
        }
}
}

関連おすすめ:

file_get_contents関数の紹介と使い方の詳細な説明

PHPはfile_get_contentsを使用してhttpリクエストを送信します関数は簡単です

Get、Post、Ajax送信であるかどうかを判断するPHPカスタム関数メソッド

以上がxamarin は get メソッドをどのように使用して json 値を PHP サーバーのログイン ページに渡すのですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。