HttpWebRequest模拟登陆,存储Cookie以便登录请求后使用
[一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/3284481.html]
PostLogin :登录,并保存Cookie
1 public static string PostLogin(string postData, string requestUrlString, ref CookieContainer cookie)
2 {
3 ASCIIEncoding encoding = new ASCIIEncoding();
4 byte[] data = encoding.GetBytes(postData);
5 //向服务端请求
6 HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(requestUrlString);
7 myRequest.Method = "POST";
8 myRequest.ContentType = "application/x-www-form-urlencoded";
9 myRequest.ContentLength = data.Length;
10 myRequest.CookieContainer = new CookieContainer();
11 Stream newStream = myRequest.GetRequestStream();
12 newStream.Write(data, 0, data.Length);
13 newStream.Close();
14 //将请求的结果发送给客户端(界面、应用)
15 HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
16 cookie.Add(myResponse.Cookies);
17 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
18 return reader.ReadToEnd();
19 }
PostRequest :登录后使用Cookie进行其他操作
1 public static string PostRequest(string postData, string requestUrlString, CookieContainer cookie)
2 {
3 ASCIIEncoding encoding = new ASCIIEncoding();
4 byte[] data = encoding.GetBytes(postData);
5 HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(requestUrlString);
6 myRequest.Method = "POST";
7 myRequest.ContentType = "application/x-www-form-urlencoded";
8 myRequest.ContentLength = data.Length;
9 myRequest.CookieContainer = cookie;
10 Stream newStream = myRequest.GetRequestStream();
11 newStream.Write(data, 0, data.Length);
12 newStream.Close();
13 HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
14 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
15 return reader.ReadToEnd();
16 }
e.g.
1 string strIMSPhone = tb_IMSPhone.Text.Trim();
2 string strIMSPwd = tb_IMSPwd.Text.Trim();
3 string postData = "username=" + strIMSPhone + "&password=" + strIMSPwd + "&type=2";
4 CookieContainer cookie=new CookieContainer();
5 if (IMSHelper.PostLogin(postData, post_signIn, ref cookie).Equals("ok"))
6 {
7 string strCont = PostRequest("", post_getContJsonData, cookie);
8 }
HttpWebRequest模拟登陆,存储Cookie以便登录请求后使用的更多相关文章
- C#如何HttpWebRequest模拟登陆,获取服务端返回Cookie以便登录请求后使用
public static string GetCookie(string requestUrlString, Encoding encoding, ref CookieContainer cooki ...
- c# 使用 HttpWebRequest模拟登陆
c# 使用 HttpWebRequest模拟登陆(附带验证码) 分类: C# .net2010-06-04 00:50 35647人阅读 评论(43) 收藏 举报 c#exceptionstreams ...
- c# 使用 HttpWebRequest模拟登陆(附带验证码)
在C#中,可以使用HttpWebRequest进行相关的模拟登陆,登陆后进行相关的操作,比如抓取数据,页面分析,制作相关登陆助手等等. 先说下流程 1.使用httpwebrequest先进入你要登录的 ...
- 使用C#的HttpWebRequest模拟登陆访问人人网
使用任何语言做模拟登陆或者抓取访问页面,无外乎以下思路: 第一 启用一个web访问会话方法或者实例化一个web访问类,如.net中的HttpWebRequest:第二 模拟POST或者GET方式提交的 ...
- 使用C#的HttpWebRequest模拟登陆访问人人网(转)
无论使用任何语言做模拟登陆或者抓取访问页面,无外乎以下思路:第一 启用一个web访问会话方法或者实例化一个web访问类,如.net中的HttpWebRequest:第二 模拟POST或者GET方式提交 ...
- 使用HttpWebRequest模拟登陆阿里巴巴(alibaba、httpwebrequest、login)
前言 其实老喜欢取经,偶尔也得分享下.关于阿里巴巴国际站的登陆,过程有点复杂但是算不上难.一不小心少个东西倒也挺麻烦的. 主要是看下请求类HttpClient基本请求封装使用,AliClient模拟浏 ...
- 转:使用C#的HttpWebRequest模拟登陆网站
这篇文章是有关模拟登录网站方面的. 实现步骤: 启用一个web会话 发送模拟数据请求(POST或者GET) 获取会话的CooKie 并根据该CooKie继续访问登录后的页面,获取后续访问的页面数据. ...
- 使用C#的HttpWebRequest模拟登陆网站
很久没有写新的东西了,今天在工作中遇到的一个问题,感觉很有用,有种想记下来的冲动. 这篇文章是有关模拟登录网站方面的. 实现步骤: 启用一个web会话 发送模拟数据请求(POST或者GET) 获取会话 ...
- python利用selenium(webdriver chrome)模拟登陆获取cookie
(我是在windows下进行实验的) 准备工作: 1.安装python环境. 2.python安装selenium插件(执行以下命令就行). pip install selenium 3.Wind ...
随机推荐
- TcpClient 错误"不能做任何连接,因为目标机器积极地拒绝它" 的解决
TcpClient 错误"不能做任何连接,因为目标机器积极地拒绝它" 的解决 //以下是tcpclient服务器端的监听程序,假设服务器端和客户端在同一台机器上,//为了使客户端可 ...
- Oracle之sql追踪
select * from v$sqlarea t where t.sql_text like '%_070%' order by t.LAST_ACTIVE_TIME desc SELECT * F ...
- JAVA事务
一.什么是事务 我们通常会认为事务与数据库有关. 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的操作.事务的正确执行使得数据库从一种状态转换成另外一种状态. 事务必须服从IS ...
- 关于Liferay所有的能够进行自定义和扩展的东西的总结
非常超级什么有用的东西,amazing. 虽然不是宝宝写的. Fantastic Extension Points - And Where to Find Them
- JAVA开发CHECK STYLE
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-/ ...
- 6、android开发中遇到的bug整理
1.使用actionProvider时出现的问题 bug复现: 解决方案: //import android.support.v4.view.ActionProvider; import androi ...
- 第五周作业 关于C语言的问卷调查
你对自己的未来有什么规划?做了哪些准备? 目前还不是很了解,我希望自己再毕业后可以在一家IT公司上班. 目前效果还不是很明显,只是对于专业的学习更加勤奋而已. 2.你认为什么是学习?学习有什么用?现 ...
- Android开发-环境搭建以及HelloWorld
最近开始进行Android的开发,没有基础完全从0开始. 首先,知道Android开发的官方网站: http://developer.android.com/index.html 网站本身教程非常 ...
- Noip2015总结
Noip2015战役总结 [游记部分] Day0 考前说是可以放松一下,下午呢就在机房打了几盘杀,一起玩了玩狼人.不过晚上觉得还是要有点氛围了,于是稍稍打了几个模板,觉得正确率还不错,给自己一点自信的 ...
- NYOJ-32 组合数 AC 分类: NYOJ 2013-12-30 07:42 189人阅读 评论(0) 收藏
#include<stdio.h> int num[100]; int pnum(int n,int v); int mv=0; int main(){ int n,v; scanf(&q ...