C# Winform利用POST传值方式模拟表单提交数据

    技术2022-05-20  34

    C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)

      这是我一个朋友写的日志,觉得有些用途,就发表在这里,以便以后查阅,也希望对各位有所帮助。

      刚到公司混的时候,老板要求实现一个从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传值方式模拟表单提交数据,在这仅供大家参考。


    最新回复(0)