在 WinForm 中打开页面采用POST方式传参http。可以多个参数传递,返回json字符串
//调用方法
Dictionary<
string
,
string
> postData =
new
Dictionary<
string
,
string
>();
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<
string
,
string
> 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<
string
,
string
> 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字符串的更多相关文章
- vue 路由传参中刷新页面参数丢失 及传参的几种方式?
在页面跳转中,我通过路由传参,结果发现页面参数丢失了.路径返回了根目录.... 1. 先说下路由传参的几种方式吧? 比如:<div v-for="item in items" ...
- Layui 在新标签中打开页面 / 模拟点击菜单
原文:https://blog.csdn.net/sr_www/article/details/81394365 核心代码: //在新标签页中 打开页面 function newTab(url, ti ...
- 二十一、springboot之定制URL匹配规则(项目中遇到的问题:get方式传参,带有小数点,被忽略)
一.问题描述: get方式传参,在传送价格,积分时(带有小数点),debug后台微服务接受到的参数,却不带小数点,如:price是0.55,后台接受后却是0 二.解决 在WebConfiguratio ...
- 微信小程序开发:学习笔记[8]——页面跳转及传参
微信小程序开发:学习笔记[8]——页面跳转及传参 页面跳转 一个小程序拥有多个页面,我们可以通过wx.navigateTo推入一个新的页面.在首页使用2次wx.navigateTo后,页面层级会有三层 ...
- (day68)Vue-CLI项目、页面跳转和传参、生命周期钩子
目录 一.Vue-CLI (一)环境搭建 (二)项目的创建 (三)项目目录结构 (四)Vue组件(.vue文件) (五)全局脚本文件main.js(项目入口) (六)Vue请求生命周期 二.页面跳转和 ...
- 使用Fiddler工具发送post请求(带有json数据)以及get请求(Header方式传参)
Fiddler工具是一个http协议调试代理工具,它可以帮助程序员测试或调试程序,辅助web开发. Fiddler工具可以发送向服务端发送特定的HTTP请求以及接受服务器回应的请求和数据,是web调试 ...
- 同一路由带参刷新,以及params和query两种方式传参的异同
同一路由应该不叫跳转了吧,就先叫刷新好了. 需求及问题 今天做web课设有这样一个需求: 在导航栏中一项叫做教师队伍一级菜单下,有三个二级菜单,分别为教授.副教授.讲师.这三个二级菜单分别对应一个页面 ...
- spring mvc返回json字符串的方式
spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json 优点:不需要自己再处理 步骤一:在spring- ...
- 160506、Spring mvc新手入门(11)-返回json 字符串的其他方式
Spring MVC返回 json字符串的方式有很多种方法,这里介绍最简单,也是最常使用的两种方式 一.使用 PrintWriter printWriter 直接输出字符串到返回结果中 不需 ...
随机推荐
- 生成html文件
第一步:建立一个MbPage.html页面 第二步:后台生成 public void ProcessRequest(HttpContext context) { c ...
- Maximum Subarray (JAVA)
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- 合理的使用size_t可以提高程序的可移植性和代码的可读性,让你的程序更高效。
最近研读STL源码时,发现里面有很多ptrdiff_t类型的数据,这与size_t的作用类似.以下是一篇关于size_t等平台无关类型的作用,写得很清楚.特将其记录下来. http://blog.cs ...
- windows系统部署discuz并和javaweb账号连通同步
一.Discuz安装说明 1.安装wamp集成环境 (1)下载wampserver集成环境 网址:(http://wampserver-64bit.en.softonic.com)或百度搜索下载 (2 ...
- netbeans ide怎么添加yii代码提示
菜单栏选择工具->选项->php界面里的全局包含路径中选择framework这个文件夹就可以了
- python基础教程第5章——条件循环和其他语句
1.语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句.在代码前放置空格来缩进语句即可穿件语句块.块中的每行都应该缩进同样的量.在Phyton中冒号(:)用来标识语句块的开始,块中 ...
- python操作redis--string
#!/usr/bin/python #!coding:utf-8 """ 完成用redis模块操作string类型的数据 """ impor ...
- VC连接SQL server2005
VC连接SQL server2005 1.创建一个MFC对话框程序 界面如下 2.创建一个成员变量 这个成员变量用于连接数据库 3.响应按钮函数OnButton1() 在响应函数里主要有三个函数 函数 ...
- C++中基类的析构函数为什么要用virtual虚析构函数
知识背景 要弄明白这个问题,首先要了解下C++中的动态绑定. 关于动态绑定的讲解,请参阅: C++中的动态类型与动态绑定.虚函数.多态实现 正题 直接的讲,C++中基类采用virtual虚析构函数是 ...
- jQuery 遍历 - siblings() 方法
本文来自:http://www.w3school.com.cn/jquery/traversing_siblings.asp jQuery 遍历参考手册 实例 查找每个 p 元素的所有类名为 &quo ...