其原理是,利用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传值方式模拟表单提交数据,在这仅供大家參考