C# winform post請求數據


剛到公司混的時候,老板要求實現一個從C#的windows應用程序傳參數到一個網頁,然后這個網頁不顯示出來,但能把數據返回給應用程序的功能,問了好多人,找了好多資料,都搞不定,后來還是在老板的幫助下搞定的......,現在把方法寫出來供大家參考。 ­

  其原理是,利用winfrom模擬表單提交數據,將要提交的參數提交給網頁,網頁執行代碼,得到數據,然后Winform程序將網頁的所有源代碼讀取下來,這樣就達到windows應用程序和web應用程序之間傳參和現實數據的效果了。 ­

    首先創建一個windows應用程序和web應用程序。 ­

    在web應用程序中,將網頁切換到源代碼並把源代碼中一些沒用的代碼刪掉,只保留頭部,在windows應用程序讀取網頁源碼時,這些都會被一起讀下來,但這些都是沒用的數據,而且刪掉沒什么影響。需要保留的代碼如下: ­

  <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %> ­

  然后在Page_Load中實現功能,以下為一個將兩個數相加並將和返回給winform的網頁例子。 ­

  string A = Request.Form["a"].ToString();//由winform中傳給網頁的參數用a標識 ­

  string B = Request.Form["b"].ToString(); ­

  int C = Convert.ToInt32(A) + Convert.ToInt32(B); ­

  Response.Write(C.ToString());//將數據寫到網頁中 ­

  在winform中實現傳參的例子代碼如下: ­

  private void button1_Click(object sender, EventArgs e) ­

        { ­

            WebClient w = new WebClient(); ­

            System.Collections.Specialized.NameValueCollection VarPost = new System.Collections.Specialized.NameValueCollection(); ­

            VarPost.Add("a", textBox1.Text.Trim());//將textBox1中的數據變為用a標識的參數,並用POST傳值方式傳給網頁 ­

            VarPost.Add("b", textBox2.Text.Trim()); ­

    //將參數列表VarPost中的所有數據用POST傳值的方式傳給http://申請好的域名或用IIs配置好的地址/Default.aspx,

    //並將從網頁上返回的數據以字節流存放到byRemoteInfo中)(注:IIS配置的時候經常沒配置好會提示錯誤,嘿) ­            

    byte[] byRemoteInfo = w.UploadValues("http://申請好的域名或用IIs配置好的地址/Default.aspx", "POST", VarPost);

    string sRemoteInfo = System.Text.Encoding.UTF8.GetString(byRemoteInfo); ­

    label1.Text = sRemoteInfo; ­

         } ­

 

  這樣就實現了C# Winform利用POST傳值方式模擬表單提交數據,在這僅供大家參考。 ­


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM