亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Winform項目調用asp.net數據接口

2019-11-14 16:24:27
字體:
來源:轉載
供稿:網友

  最近一個WPF項目需要改寫成android項目,思路是在asp.net項目中編寫一個通用接口,便于其它平臺下調用數據。剛接觸到這些東西的時候完全是一頭霧水,最根本的原因是不明白網站中的一個網頁,為什么其它項目就可以訪問它,并獲取數據。帶著疑問在asp.net項目編寫一個簡單的數據接口,并新建一個小winform項目直接訪問它。本文涉及到的知識點有:在asp.net項目中如何編寫一個數據接口;使用反射辨別響應的方法;以及如何獲取接口的數據。這里僅僅是介紹如何使用它們,而不講述使用它們的基本原理,一是本人道行淺薄對基本原理不了解,害怕隨便書寫誤導后人;二是如果闡述其基本原理,勢必需要花費大量時間,奈何時間有限。將來如果上述兩個條件滿足,必會在最下面做出論述,因為這對自己的進步也是一個肯定。閑話少說,開始正文。

  主要內容:

  1、asp.net項目下編寫數據接口

  2、使用反射分辨調用方法

  3、新建一個winform項目測試接口的正確性

 

1、在asp.net項目下編寫一簡單接口

編寫一個方法,構造一個json字符串Response即可。

PRivate void ExamInfoLogin()        {            string aa = "8";            string bb = "9";            string roomName = Request.Form["RoomName"];            if (roomName == "806")            {                aa = "7";            }                                   StringBuilder jsonStringBuilder = new StringBuilder();            jsonStringBuilder.Append("{");            jsonStringBuilder.Append("/"UName/":/"").Append(aa).Append("/",");            jsonStringBuilder.Append("/"PassWord/":/"").Append(bb).Append("/"");            jsonStringBuilder.Append("}");            Response.Write(jsonStringBuilder.ToString());        }

 

2、使用反射選取調用方法

假設在aspx頁面中有很多方法,而在使用過程中往往僅需要調用其中的某一個方法,此處用反射選取調用方法。

反射過程中使用的常量:

private const string PAGE_PATH_INFO = "/AppDataInterface/ExamLogin.aspx";//頁面        private const string ASSEMBLY_NAME = "OSCEWEB";//程序集        private const string CLASS_NAME = "OSCEWEB.AppDataInterface.ExamLogin";//類名

 

重寫OnInit方法:

protected override void OnInit(EventArgs e)        {            string pathInfo = Request.Params["PATH_INFO"];            if (pathInfo.StartsWith(PAGE_PATH_INFO + "/"))            {                string[] nameList = pathInfo.Substring(PAGE_PATH_INFO.Length + 1).Split('/');                if (nameList.Length < 1)                {                    Response.End();                    return;                }                try                {                    Assembly assembly = Assembly.Load(ASSEMBLY_NAME);                    Type type = assembly.GetType(CLASS_NAME);                    MethodInfo method = type.GetMethod(nameList[0], System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);                    method.Invoke(this, null);                }                catch (Exception ex)                {                    Response.End();                    return;                }            }        }

 

在Page_Load方法中添加:

if (Request.Params["PATH_INFO"].StartsWith(PAGE_PATH_INFO + "/"))            {                Response.End();            }

 

3、新建一Winform項目,訪問asp.net中數據接口

發布asp.net項目,網址:http://192.168.4.22:8005

1)無需向數據接口傳遞數據:

private void button1_Click(object sender, EventArgs e)        {            string strURL = "http://192.168.4.22:8005/AppDataInterface/ExamLogin.aspx/ExamInfoLogin";            request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);            response = (System .Net.HttpWebResponse )request .GetResponse ();            System.IO.StreamReader streamReader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);            string responseText = streamReader.ReadToEnd();            streamReader.Close();            MessageBox.Show(responseText);        }

得到的數據是:{"UName":"8","Password":"9"}

 

2)以post方式向數據接口傳遞數據,獲取接口數據

private void button2_Click(object sender, EventArgs e)        {            string strURL = "http://192.168.4.22:8005/AppDataInterface/ExamLogin.aspx/ExamInfoLogin";            request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);            request.Method = "POST";            request.ContentType = "application/x-www-form-urlencoded";            string param = "RoomName=806";            ASCIIEncoding encoding = new ASCIIEncoding ();            byte[] data = encoding.GetBytes(param);            request.ContentLength = data.Length;            System.IO.Stream stream = request.GetRequestStream();            stream.Write(data, 0, data.Length);            stream.Close();            response = (System.Net.HttpWebResponse)request.GetResponse();            System.IO.StreamReader streamReader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);            string responseText = streamReader.ReadToEnd();            streamReader.Close();            MessageBox.Show(responseText);        }

得到的數據:{"UName":"7","Password":"9"}

 

4、總結

  按照上述介紹的一些方法確實能完成項目,但是對其為什么該如此還是充滿疑惑,總感覺心中無底、戰戰兢兢,希望有高手可以對小弟指點一二,不勝感激。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男女性事视频| 国产精品久久久久久久久久小说| 久久久综合免费视频| 国产自产女人91一区在线观看| 日韩av电影在线免费播放| 狠狠干狠狠久久| 在线观看欧美成人| 国产午夜一区二区| 国产精品成人免费电影| 这里只有精品丝袜| 国产成人亚洲精品| 久久成人精品视频| 成人国产亚洲精品a区天堂华泰| 欧美第一黄网免费网站| 国产亚洲欧美日韩精品| 欧美一乱一性一交一视频| 国产成人短视频| 亚洲国产日韩欧美综合久久| www欧美日韩| 久久精品国产久精国产思思| 日韩在线观看av| 精品亚洲一区二区三区| 丝袜亚洲欧美日韩综合| 午夜精品一区二区三区在线| 色综合天天狠天天透天天伊人| 欧美午夜xxx| xx视频.9999.com| 综合136福利视频在线| 亚洲国产成人爱av在线播放| 国产欧美一区二区三区久久| 日韩免费在线观看视频| 超碰精品一区二区三区乱码| 欧美wwwxxxx| 久久精品99久久香蕉国产色戒| 欧美中在线观看| 亚洲女成人图区| 日韩免费在线视频| 久久伊人精品天天| 亚洲欧美精品一区二区| 欧美极品美女电影一区| 国产美女直播视频一区| 日韩大片在线观看视频| 国产精品老女人精品视频| 欧美又大又硬又粗bbbbb| 日韩在线中文字幕| 日本中文字幕成人| 国产成人在线一区二区| 97人人模人人爽人人喊中文字| 日韩欧美高清在线视频| 国产日韩欧美电影在线观看| 成人国产精品一区| 日韩免费黄色av| 美女av一区二区| 亚洲黄页网在线观看| 992tv成人免费视频| 亚洲韩国欧洲国产日产av| 日韩av手机在线| 精品国产91久久久久久老师| 亚洲人av在线影院| 亚洲免费伊人电影在线观看av| 成人免费大片黄在线播放| 国产精品视频在线观看| 精品呦交小u女在线| 伦伦影院午夜日韩欧美限制| 亚洲天堂av网| 国内精品免费午夜毛片| 在线丨暗呦小u女国产精品| 久久影视电视剧免费网站清宫辞电视| 久久久www成人免费精品张筱雨| 尤物九九久久国产精品的分类| 96精品久久久久中文字幕| 久久精品国产99国产精品澳门| 久久69精品久久久久久国产越南| 在线成人激情黄色| 黑人精品xxx一区一二区| 欧美色视频日本版| 国内精品久久久久久久| 美女福利精品视频| 国产日韩精品入口| 欧美精品久久久久久久久| 成人黄色短视频在线观看| 久久综合网hezyo| 亚洲国产天堂久久综合网| 中文字幕亚洲色图| 欧美日韩一区二区三区在线免费观看| 国产精品视频26uuu| 国产精品久久久久久久久粉嫩av| 日韩欧美大尺度| 91精品国产高清自在线看超| 亚洲高清av在线| 中文字幕亚洲欧美日韩2019| 亚洲 日韩 国产第一| 久久精品色欧美aⅴ一区二区| 国产精品色午夜在线观看| 欧美日韩高清在线观看| 国产成人aa精品一区在线播放| 亚洲一区二区三区四区在线播放| 91性高湖久久久久久久久_久久99| 8x海外华人永久免费日韩内陆视频| 国产亚洲欧美日韩精品| 91国产视频在线播放| 国外成人在线视频| 国内精品久久久久久久| 国产成人aa精品一区在线播放| 国产成人在线一区二区| 亚洲欧美在线免费观看| 亚洲精品98久久久久久中文字幕| 91精品综合久久久久久五月天| 久久久久亚洲精品成人网小说| 国产精品欧美亚洲777777| 国产日韩欧美另类| 97精品免费视频| 欧美性xxxxx| 7m精品福利视频导航| 久久99久久久久久久噜噜| 茄子视频成人在线| 欧美在线观看网站| 国产999视频| 国产成人精品久久亚洲高清不卡| 九九热精品视频| 亚洲人成电影网站色www| 日韩成人在线网站| 亚洲性xxxx| 国产精品扒开腿做爽爽爽视频| 欧美福利在线观看| 免费91麻豆精品国产自产在线观看| 91精品久久久久久久| 日韩欧中文字幕| 97国产在线视频| 在线亚洲男人天堂| 欧美有码在线观看视频| 色综合91久久精品中文字幕| 国产一区二区三区中文| 97av在线视频| 亚洲成人动漫在线播放| 日本欧美一级片| 91精品国产高清自在线| 亚洲最大av在线| 成人有码在线视频| 色狠狠久久aa北条麻妃| 久久网福利资源网站| 欧美乱妇40p| 青青久久av北条麻妃黑人| 亚洲性生活视频在线观看| 国产成人精彩在线视频九色| 亚洲精品www久久久久久广东| 在线视频免费一区二区| 81精品国产乱码久久久久久| 国产999精品久久久| 精品国产福利在线| 日韩免费精品视频| 欧美在线观看一区二区三区| 国产丝袜精品第一页| 亚洲天堂av综合网| 久久久精品国产网站| 亚洲电影av在线| 国产精品欧美亚洲777777| 久色乳综合思思在线视频| 中文字幕九色91在线| 狠狠躁夜夜躁人人爽天天天天97| 亚洲а∨天堂久久精品喷水| 黑人狂躁日本妞一区二区三区| 亚洲电影免费观看高清完整版在线观看| 国产精品日韩久久久久|