post 和 get 网站
通过应用程序读取网页信息的时候,通常需要抓取网页的数据,但是有一个问题就是很多网页需要登录后才能够获得页面数据,那么就需要保存当前的cookie,在.NET中可以使用CookieContainer 对象来保存登录后的Cookie信息,每次发送数据的时候加上Cookie信息,就可以解决这个问题了。
#region 同步通过POST方式发送数据
/// <summary>
/// 通过POST方式发送数据
/// </summary>
/// <param name="Url">url</param>
/// <param name="postDataStr">Post数据</param>
/// <param name="cookie">Cookie容器</param>
/// <returns></returns>
public string SendDataByPost(string Url,string postDataStr,ref CookieContainer cookie)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
if (cookie.Count == 0)
{
request.CookieContainer = new CookieContainer();
cookie = request.CookieContainer;
}
else
{
request.CookieContainer = cookie;
}
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postDataStr.Length;
Stream myRequestStream = request.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString= myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
#endregion
#region 同步通过GET方式发送数据
/// <summary>
/// 通过GET方式发送数据
/// </summary>
/// <param name="Url">url</param>
/// <param name="postDataStr">GET数据</param>
/// <param name="cookie">GET容器</param>
/// <returns></returns>
public string SendDataByGET(string Url, string postDataStr, ref CookieContainer cookie)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url +( postDataStr == "" ? "" : "?") + postDataStr);
if (cookie.Count == 0)
{
request.CookieContainer = new CookieContainer();
cookie = request.CookieContainer;
}
else
{
request.CookieContainer = cookie;
}
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
#endregion
转载于:https://www.cnblogs.com/fesbruce/archive/2010/04/08/1707118.html
post 和 get 网站相关推荐
- Docsify个人网站搭建详细教程
目录 一.什么是 docsify 二.安装 docsify 三.多页文档设置 四.定制化配置 4.1.侧边栏 4.2.导航栏 4.3.封面 4.4.主题 五.部署 5.1.部署到Gitee 5.2.部 ...
- 用gogs搭建属于自己的git网站
如果你对docker的操作不太了解, 建议先阅读 从零搭建docker私有仓库 gogs是一款极易搭建的自助 Git 服务, 掌握了它, 我们就可以搭建自己的git服务站点 gogs官网: https ...
- 网站项目必备——12款白富美型 jQuery 图片轮播插件
转自:http://www.cnblogs.com/lhb25/archive/2013/01/06/jquery-image-carousel-effect.html 图片轮播是网站中的常用功能,用 ...
- .net2.0网站多语言
asp.net 2.0中的App_GlobalResources可以用来解决本地化的问题,程序会根据浏览器的语言首选项自动判断显示出本地化的界面. 首先在App_GlobalResources新建re ...
- 为什么很多网站的验证码都设置得肉眼都很难识别?
欢迎访问网易云社区,了解更多网易技术产品运营经验. 首先来谈谈验证码的机制,验证码作为一种人机识别手段,其终极目的,就是区分正常人和机器的操作.而对于没有验证码的场景,比如用户登陆,则机器可以同时.大 ...
- php防止网站被镜像,网站被等恶意镜像的解决、反制措施详细教程
前天在百度搜索王柏元的博客网站关键词时,猛地在百度结果的第一页中发现了一个标题.简介和我完全一样的网站,不看不知道,这个网站还不是传统意义上的抄袭.盗链,不仅仅把我的网站全部照搬,而且把网页里所有的链 ...
- 视频 网站 页面开关灯实现方法
在甲骨文学习 已经进行了四分之一了, 关于web 的学习基本结束了, 在项目展示的时候遇到了 视频网站开关灯的问题, 其实问题的根本就是 做两个div, 然后开灯的时候隐藏一个 关灯的时候 隐藏另 ...
- 从零开始用 Flask 搭建一个网站(二)
从零开始用 Flask 搭建一个网站(一) 介绍了如何搭建 Python 环境,以及 Flask 应用基本项目结构.我们要搭建的网站是管理第三方集成的控制台,类似于 Slack. 本篇主要讲解数据如何 ...
- 第20章 使用LNMP架构部署动态网站环境
章节概述: 本章节将从Linux系统的软件安装方式讲起,带领读者分辨RPM软件包与源码安装的区别.并能够理解它们的优缺点. Nginx是一款相当优秀的用于部署动态网站的服务程序,Nginx具有不错的稳 ...
- 网站压力测试工具webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装: 引用 wget htt ...
最新文章
- Kanzi常用操作1
- 为什么Android变得对商业世界至关重要?
- 经典KMP算法C++与Java实现代码
- Android移动端音视频的快速开发教程(五)
- nvml.dll 英伟达公司提供的动态库用途
- windows之如何刷新电脑DNS缓存
- IT综合管理 新时期的运维管理思路
- Session 'app': Installation did not succeed.The application could not be installed: INSTALL FAILED I
- 穷小子做网站赚钱终得丈母娘认可
- linux元组和列表的区别,列表,元组,集合
- (bfs)广度优先 实现图的遍历
- JavaScript打开窗口
- 深度剖析JAVA软件工程师
- spring cloud 解决问题
- APP闪退有哪些原因造成的?
- 云计算实战应用案例精讲-【深度学习】多模态融合(论文篇四)
- 滤波器原理及其作用计算机网络,什么是滤波器?滤波器原理及其作用是什么?...
- 3DMax的中文版官方手册
- 蒙纳丽莎的微笑系列 广告软文:“效益之源”(转载自:中国灯饰商贸网)
- 轻松实现即席查询,Smartbi满足用户多样分析需求
热门文章
- JQuery时间轴timeline插件的学习-Lateral On-Scroll Sliding with jQuery+technotarek / timeliner
- Angular7教程-04-Angular常用操作(下)
- TestNg测试框架使用
- windows系统查看80端口被占用的程序并结束该程序运行
- 安卓开发中,什么样的功能适合抽取成 Library?
- oracle错误代码及解决办法整合
- linux使用小命令使用汇集
- 程序员被公司辞退12天,前领导要求回公司讲清楚代码,结果懵了
- 卸载 Navicat!事实已证明,正版客户端,它更牛逼……
- 为什么 Java 不支持类多重继承?