C# winfrom HttpWebRequest 请求获取html网页信息和提交信息
string result =GetRequest("http://localhost:32163/DuoBao/ajax.aspx", "time=5"); //如果有好几个参数可以在后面加,如: time=5&b=1&c=5
/// <summary>
/// 获得post请求后响应的数据
/// </summary>
/// <param name="postUrl">请求地址</param>
/// <param name="data">请求带的数据</param>
/// <returns>响应内容</returns>
public string GetRequest(string postUrl, string data)
{
string result = "";
try
{
//命名空间System.Net下的HttpWebRequest类
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);
//参照浏览器的请求报文 封装需要的参数 这里参照ie9
//浏览器可接受的MIME类型
request.Accept = "text/plain, */*; q=0.01";
//包含一个URL,用户从该URL代表的页面出发访问当前请求的页面
//浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)";
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
//请求方式
request.Method = "POST";
//是否保持常连接
request.KeepAlive = false;
request.Headers.Add("Accept-Encoding", "gzip, deflate");
//表示请求消息正文的长度
request.ContentLength = data.Length;
Stream postStream = request.GetRequestStream();
byte[] postData = Encoding.UTF8.GetBytes(data);
//将传输的数据,请求正文写入请求流
postStream.Write(postData, 0, postData.Length);
postStream.Dispose();
//响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//判断响应的信息是否为压缩信息 若为压缩信息解压后返回
if (response.ContentEncoding == "gzip")
{
MemoryStream ms = new MemoryStream();
GZipStream zip = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress);
byte[] buffer = new byte[1024];
int l = zip.Read(buffer, 0, buffer.Length);
while (l > 0)
{
ms.Write(buffer, 0, l);
l = zip.Read(buffer, 0, buffer.Length);
}
ms.Dispose();
zip.Dispose();
result = Encoding.UTF8.GetString(ms.ToArray());
}
return result;
}
catch (Exception)
{
throw;
}
}
///请求的页面
public override void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//接收参数
string time = context.Request["time"];
if (!string.IsNullOrEmpty(time))
{
//调用方法
}
context.Response.Write("2");//返回参数
}
来源 http://www.cnblogs.com/lyl6796910/p/3722280.html
C# winfrom HttpWebRequest 请求获取html网页信息和提交信息的更多相关文章
- python3 获取自建gitlab用户提交信息
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-12-03 14:20 # @Author : Anthony # @Emai ...
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
js_html_input中autocomplete="off"在chrom中失效的解决办法 分享网上的2种办法: 1-可以在不需要默认填写的input框中设置 autocompl ...
- C# HttpWebRequest请求远程地址获取返回消息
HttpWebRequest请求远程地址获取返回消息 /// <summary> /// 请求远程Api获取响应返回字符串 /// </summary> /// <par ...
- Spring MVC请求参数绑定 自定义类型转化 和获取原声带额servlet request response信息
首先还在我们的框架的基础上建立文件 在domian下建立Account实体类 import org.springframework.stereotype.Controller; import org. ...
- 使用HttpWebRequest请求API接口以及其他网站资源
很多时候,我们项目需要其他网站的资源,而这个被请求的网站可能属于你们自己开发管理的网站.也可能是公网上其他网站对外开发的API接口,比如说腾讯的微信公众平台的API接口.各大短信服务商的短信API接口 ...
- 利用python获取自己的qq群成员信息
利用python获取自己的qq群成员信息! 首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己 ...
- NodeMCU获取并解析心知天气信息
NodeMCU获取并解析心知天气信息 1 注册心知天气并获取私钥 打开心知天气网站,点击注册按钮 填写基本信息注册心知天气账号,登录注册所填写的邮箱点击链接进行账号激活,随后出现如下界面 点击登录按钮 ...
- C#使用GET、POST请求获取结果
C#使用GET.POST请求获取结果,这里以一个简单的用户登陆为例. 1. 使用GET请求获取结果 1.1 创建LoginHandler.aspx处理页面 protected void Page_Lo ...
- 如何直接在 PC 端获取其它端设备的 UserAgent 信息呢?
如何直接在 PC 端获取其它端设备的 UserAgent 信息呢 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5909615.html 序 希望收 ...
随机推荐
- UIScrollView设置滑动的距离
设置好scrollView.width即是控制滑动的距离, scrollView.clipsToBounds = NO;控制是否显示多出的部分(可灵活运用)
- 用flex做垂直居中
<div class="flex-cont flex-centerbox"> <div class="center-cont"> < ...
- TFS API : 四、工作项查询
TFS API : 四.工作项查询 本节将讲述如何查询工作项,将用户统计数据. 使用WorkItemStore.Query方法进行查询工作项,其使用的语法和SQL语法类似: Select [标题] f ...
- iOS 申请加急审核
申请加急网址:https://developer.apple.com/appstore/contact/appreviewteam/index.html 提交加急审核需要理由,一般涉及到银行信息,或者 ...
- tushare
tushare TuShare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据, ...
- Spring Security4.X 简单实例介绍
简介 本例子采用的是SpringMVC.SpringSecurity和Spring整合的简单使用 使用gradle搭建的项目(gradle比maven更加便捷),可以自行了解 web.xml配置 &l ...
- DTMF三种模式(SIPINFO,RFC2833,INBAND)
转自:http://www.tuicool.com/articles/n6Vb2iJ 1.DTMF(双音多频)定义:由高频音和低频音的两个正弦波合成表示数字按键(0~9 * # A B C D). 2 ...
- AutoMapper实现自动CreapMap
标题是个噱头,完全不写代码自动是不现实的,只是简化了CreateMap.方法也是很粗糙的,看看吧. 我想在使用AutoMapper的时候最恶心的一定是写了一个Profile,里边有n行 Mapper. ...
- Windows远程桌面打印机映射
计算机的打印机驱动能打印,需要满足两个条件,一个是有打印驱动本身,一个是要有连接好了的端口.这样,打印作业就会被打印驱动程序封装成一种打印机能识别的组织形式,然后通过打印端口发送给打印机,然后打印! ...
- APPCAN开发笔记:html页面之间的参数传递:使用js获取url中的参数,以及在APPCAN中不能使用的解决方法
用PHP的GET/POST方式来传递方式已经是司空见惯了,但是如果我的页面是一个静态的html的页面,想传递参数的时候要怎么办呢?在APPCAN的开发中我们会经常遇到这样的问题,因为所有的页面都是静态 ...