//调用方法

Dictionary<stringstring> postData = new Dictionary<stringstring>();
postData.Add("user""aaa");
postData.Add("pass""bbb");
 
GetPageByPost("http://www.xxx.com/send.aspx", postData, Encoding.UTF8);
 
/// <summary>
/// 以 Post 方式提交网页数据,获得服务器返回的数据
/// </summary>
/// <param name="url"> Url </param>
/// <param name="postData">Post 数据</param>
/// <param name="encoder">网页编码</param>
/// <returns>服务器返回的数据</returns>
public string GetPageByPost(string url, Dictionary<stringstring> postData, Encoding encoder)
{
    string html = "";
 
    HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
    webReq.Method = "POST";
 
    Stream reqStream = null;
    if (postData != null && postData.Count > 0) {
        StringBuilder sb = new StringBuilder();
        foreach (KeyValuePair<stringstring> kv in postData) {
            sb.Append(HttpUtility.UrlEncode(kv.Key));
            sb.Append("=");
            sb.Append(HttpUtility.UrlEncode(kv.Value));
            sb.Append("&");
        }
 
        byte[] data = Encoding.UTF8.GetBytes(sb.ToString().TrimEnd('&'));
 
        webReq.ContentType = ContentType;
        webReq.ContentLength = data.Length;
        reqStream = webReq.GetRequestStream();
        reqStream.Write(data, 0, data.Length);
    }
 
    HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse();
    Stream stream = webResp.GetResponseStream();
    StreamReader sr = new StreamReader(stream, encoder);
    html = sr.ReadToEnd();
 
    sr.Close();
    stream.Close();
 
    if (reqStream != null) {
        reqStream.Close();
    }
 
    return html;
}

在 WinForm 中打开页面采用POST方式传参http。可以多个参数传递,返回json字符串的更多相关文章

  1. vue 路由传参中刷新页面参数丢失 及传参的几种方式?

    在页面跳转中,我通过路由传参,结果发现页面参数丢失了.路径返回了根目录.... 1. 先说下路由传参的几种方式吧? 比如:<div v-for="item in items" ...

  2. Layui 在新标签中打开页面 / 模拟点击菜单

    原文:https://blog.csdn.net/sr_www/article/details/81394365 核心代码: //在新标签页中 打开页面 function newTab(url, ti ...

  3. 二十一、springboot之定制URL匹配规则(项目中遇到的问题:get方式传参,带有小数点,被忽略)

    一.问题描述: get方式传参,在传送价格,积分时(带有小数点),debug后台微服务接受到的参数,却不带小数点,如:price是0.55,后台接受后却是0 二.解决 在WebConfiguratio ...

  4. 微信小程序开发:学习笔记[8]——页面跳转及传参

    微信小程序开发:学习笔记[8]——页面跳转及传参 页面跳转 一个小程序拥有多个页面,我们可以通过wx.navigateTo推入一个新的页面.在首页使用2次wx.navigateTo后,页面层级会有三层 ...

  5. (day68)Vue-CLI项目、页面跳转和传参、生命周期钩子

    目录 一.Vue-CLI (一)环境搭建 (二)项目的创建 (三)项目目录结构 (四)Vue组件(.vue文件) (五)全局脚本文件main.js(项目入口) (六)Vue请求生命周期 二.页面跳转和 ...

  6. 使用Fiddler工具发送post请求(带有json数据)以及get请求(Header方式传参)

    Fiddler工具是一个http协议调试代理工具,它可以帮助程序员测试或调试程序,辅助web开发. Fiddler工具可以发送向服务端发送特定的HTTP请求以及接受服务器回应的请求和数据,是web调试 ...

  7. 同一路由带参刷新,以及params和query两种方式传参的异同

    同一路由应该不叫跳转了吧,就先叫刷新好了. 需求及问题 今天做web课设有这样一个需求: 在导航栏中一项叫做教师队伍一级菜单下,有三个二级菜单,分别为教授.副教授.讲师.这三个二级菜单分别对应一个页面 ...

  8. spring mvc返回json字符串的方式

    spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json            优点:不需要自己再处理 步骤一:在spring- ...

  9. 160506、Spring mvc新手入门(11)-返回json 字符串的其他方式

    Spring MVC返回 json字符串的方式有很多种方法,这里介绍最简单,也是最常使用的两种方式 一.使用  PrintWriter printWriter  直接输出字符串到返回结果中    不需 ...

随机推荐

  1. ASP.NET MVC 自定义错误页面心得

    自定义错误页面的目的,就是为了能让程序在出现错误/异常的时候,能够有较好的显示体验. 所以,首先要先了解,我们可以在哪里捕获异常. 当程序发生错误的时候,我们可以在两个地方捕获: Global里面的A ...

  2. 网页嵌入WMP代码(转)

    网页嵌入WMP代码 播放器代码解释,装了9.0或9.0以上的播放器才能正常使用: OBJECT id="WMP" height="176" width=&quo ...

  3. HDU 5728 - PowMod

    HDU 5728 - PowMod 题意:    定义: k = ∑(i=1,m) φ(i∗n) mod 1000000007 给出: n,m,p ,且 n 无平方因子 求: ans= k^(k^(k ...

  4. commands - `ls`

    list only directories: ls -d /path/to/*/

  5. (转+原)android获取系统时间

    参考的网站如下: http://c.biancheng.net/cpp/html/144.html http://www.linuxidc.com/Linux/2012-03/55909.htm 代码 ...

  6. 判断浏览器IE6

    <!--[if lte IE 6]><LINK rel="stylesheet" type="text/css" href="ima ...

  7. oracle中导出导入表以及数据

    Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中.利用 ...

  8. SqlServer中代理作业实现总结

    今天弄SqlServer代理作业,弄了半天,把遇到的问题总结出来,主要是抨击一下Sql Server的Express版本.好了,看下面的正题. 首先,需要安装Sql Server Agent服务,该服 ...

  9. KeyEvent

    http://blog.csdn.net/elfylin/article/details/8008763 一. 接口KeyEvent.Callback和View.OnKeyListener 二. 流程 ...

  10. Delphi 线程Timer (TThreadTimer)

    delphi 自带的Timer控件,使用方便,但它的 OnTimer 事件是在主线程中引发的. 如果在事件中执行较耗时的代码,会引起主界面假死.故实现一个线程的Timer就有必要了. TThreadT ...