<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        Winform項目調(diào)用asp.net數(shù)據(jù)接口

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 14:39:35
        文檔

        Winform項目調(diào)用asp.net數(shù)據(jù)接口

        Winform項目調(diào)用asp.net數(shù)據(jù)接口:最近一個WPF項目需要改寫成android項目,思路是在asp.net項目中編寫一個通用接口,便于其它平臺下調(diào)用數(shù)據(jù)。剛接觸到這些東西的時候完全是一頭霧水,最根本的原因是不明白網(wǎng)站中的一個網(wǎng)頁,為什么其它項目就可以訪問它,并獲取數(shù)據(jù)。帶著疑問在asp.ne
        推薦度:
        導(dǎo)讀Winform項目調(diào)用asp.net數(shù)據(jù)接口:最近一個WPF項目需要改寫成android項目,思路是在asp.net項目中編寫一個通用接口,便于其它平臺下調(diào)用數(shù)據(jù)。剛接觸到這些東西的時候完全是一頭霧水,最根本的原因是不明白網(wǎng)站中的一個網(wǎng)頁,為什么其它項目就可以訪問它,并獲取數(shù)據(jù)。帶著疑問在asp.ne

        最近一個WPF項目需要改寫成android項目,思路是在asp.net項目中編寫一個通用接口,便于其它平臺下調(diào)用數(shù)據(jù)。剛接觸到這些東西的時候完全是一頭霧水,最根本的原因是不明白網(wǎng)站中的一個網(wǎng)頁,為什么其它項目就可以訪問它,并獲取數(shù)據(jù)。帶著疑問在asp.net項目

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

          主要內(nèi)容:

          1、asp.net項目下編寫數(shù)據(jù)接口

          2、使用反射分辨調(diào)用方法

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

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

        編寫一個方法,構(gòu)造一個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、使用反射選取調(diào)用方法

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

        反射過程中使用的常量:

        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中數(shù)據(jù)接口

        發(fā)布asp.net項目,網(wǎng)址:http://192.168.4.22:8005

        1)無需向數(shù)據(jù)接口傳遞數(shù)據(jù):

        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);
         }

        得到的數(shù)據(jù)是:{"UName":"8","Password":"9"}

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

        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);
         }

        得到的數(shù)據(jù):{"UName":"7","Password":"9"}

        4、總結(jié)

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

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Winform項目調(diào)用asp.net數(shù)據(jù)接口

        Winform項目調(diào)用asp.net數(shù)據(jù)接口:最近一個WPF項目需要改寫成android項目,思路是在asp.net項目中編寫一個通用接口,便于其它平臺下調(diào)用數(shù)據(jù)。剛接觸到這些東西的時候完全是一頭霧水,最根本的原因是不明白網(wǎng)站中的一個網(wǎng)頁,為什么其它項目就可以訪問它,并獲取數(shù)據(jù)。帶著疑問在asp.ne
        推薦度:
        標(biāo)簽: 使用 數(shù)據(jù) 訪問
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 麻豆视频免费播放| 久久99国产乱子伦精品免费| 免费中文熟妇在线影片| 亚洲精品熟女国产| 久久国产色AV免费观看| 亚洲欧洲日本精品| 国产精品免费观看久久| 亚洲一区二区三区成人网站| 97无码免费人妻超级碰碰碰碰| 亚洲中文无码永久免费| 卡1卡2卡3卡4卡5免费视频| 亚洲人成网站18禁止| 国产在线98福利播放视频免费| 久久久久久久久无码精品亚洲日韩| 日本免费高清一本视频| 美女无遮挡免费视频网站| 亚洲国产精品狼友中文久久久| 九九久久精品国产免费看小说| 亚洲午夜久久久久久久久电影网| 野花香高清视频在线观看免费| 久久久久亚洲精品无码蜜桃| 人妻视频一区二区三区免费| 国产成人综合亚洲一区| 国产精品亚洲综合一区| 野花香高清视频在线观看免费| 亚洲码在线中文在线观看| 成年性生交大片免费看| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 亚洲国产精品激情在线观看| 久久久久久久久久国产精品免费| 亚洲制服在线观看| 波多野结衣免费视频观看| a级精品九九九大片免费看| 亚洲黄网在线观看| 国产小视频在线观看免费| 国产午夜精品理论片免费观看| 666精品国产精品亚洲| 日韩免费电影在线观看| 免费观看久久精彩视频 | 亚洲日韩aⅴ在线视频| 亚洲一区免费在线观看|