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

C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)的更多相关文章

  1. <记录> axios 模拟表单提交数据

    ajax 可以通过 FormData 对象模拟表单提交数据 第一种方式:自定义FormData信息 //创建formData对象 var formData = new FormData(); //添加 ...

  2. HTTP通信模拟表单提交数据

    前面记录过一篇关于http通信,发送数据的文章:http://www.cnblogs.com/hyyq/p/7089040.html,今天要记录的是如何通过http模拟表单提交数据. 一.通过GET请 ...

  3. 向后台提交数据:通过form表单提交数据需刷新网页 但通过Ajax提交数据不用刷新网页可通过原生态Ajax或jqueryAjax。Ajax代码部分

    原生态Ajax提交表单:需要借助XMLHttpRequest对象的open,要收通过post发送请求还要setRequsetHeader,然后把数据发送给后端,代码如下 目录结构 index.py代码 ...

  4. 利用HttpWebRequest模拟表单提交 JQuery 的一个轻量级 Guid 字符串拓展插件. 轻量级Config文件AppSettings节点编辑帮助类

    利用HttpWebRequest模拟表单提交   1 using System; 2 using System.Collections.Specialized; 3 using System.IO; ...

  5. 表单提交---前端页面模拟表单提交(form)

    有些时候我们的前端页面总没有<form></form>表单,但是具体的业务时,我们又必须用表单提交才能达到我们想要的结果,LZ最近做了一些关于导出的一些功能,需要调用浏览器默认 ...

  6. js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题

    js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...

  7. 由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载,但是ajax实现的文件下载并不能触发浏览器的下载文件弹出框,这里通过模拟表单提交实现同样的效果。

    由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载(这样的话ajax可以传递不同的参数),但是ajax实现的文 ...

  8. Servlet的5种方式实现表单提交(注册小功能)

    Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据   用servlet实现一个注册的小功能 ,后台获取数据. 注册页面: 注册页面代码 : <!DOCTYPE html> ...

  9. 项目总结15:JavaScript模拟表单提交(实现window.location.href-POST提交数据效果)

    JavaScript模拟表单提交(实现window.location.href-POST提交数据效果) 前沿 1-在具体项目开发中,用window.location.href方法下载文件,因windo ...

随机推荐

  1. swift语言点评二十一-协议

    定义有什么,及哪些必须实现. A protocol defines a blueprint of methods, properties, and other requirements that su ...

  2. swift语言点评六-Numbers and Basic Values

    Topics Logical Values struct Bool A value type whose instances are either true or false. Numeric Val ...

  3. C++调用约定和名字约定 thiscall

    调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数 ...

  4. LA3231 Fair Share 二分_网络流

    Code: #include<cstdio> #include<vector> #include<queue> #include<cstring> #i ...

  5. dedecms简略标题(副标题)使用方法教程

    在常见的CMS系统中,我对dedecms算是比较熟悉的,自己网站用的也是这个系统.系统功能强大使用灵活,相信这也是它受到大多数中小站长青睐的原因. 再好的系统也有照顾不周的地方,很多站长也会有自己个性 ...

  6. sudo不用在输入密码

    在任意的路径之下执行:sudo visudo 的命令对文件进行修改: 其中的: sudo ALL=(ALL) %admin ALL=(ALL) 这两个语句为: sudo ALL=(ALL) NOPAS ...

  7. 《剑指Offer》——试题1:赋值运算符函数

    题目:如下类型为CMyString的声明,请为该类型添加赋值运算符函数.   class CMyString { public: CMyString(char* pData = NULL); CMyS ...

  8. 使用JNA,让java调用原生代码

    JNA定义: JNA:java Native Access,是SUN公司开发的基于JNI的框架.JNI使得Java可以调用原生的c或者c++代码. JNA与JNI(Java Native Interf ...

  9. 蓝牙压力測试报抛android.os.TransactionTooLargeException异常分析总结

    1.从main日志中找到异常点,例如以下: 08-20 11:05:19.754 5023 5023 E AndroidRuntime: FATAL EXCEPTION: main 08-20 11: ...

  10. 启用Database Vault

    步骤1:停止EM.监听.数据库 步骤2:启用Database Vault [oracle@single1 ~]$ cd $ORACLE_HOME/rdbms/lib [oracle@single1 l ...