post用户名密码到一个url,实现登录功能,并获取cookie,显示包含登录信息的页面

问题描述

这是我写的一段代码,获取到的cookie不对,求大神帮忙指点一下classProgram{publicstaticCookieContainertheCC=newCookieContainer();publicstaticstringLogin(){stringusername="";stringpassword="";stringpostdata="userName="+username+"&password="+password;HttpWebResponseres=null;HttpWebRequestreq=null;stringstrResult="";try{req=(HttpWebRequest)WebRequest.Create("http://tieba.baidu.com/");//配置请求headerreq.Headers.Add(HttpRequestHeader.AcceptCharset,"GBK,utf-8;q=0.7,*;q=0.3");req.Headers.Add(HttpRequestHeader.AcceptEncoding,"gzip,deflate,sdch");req.Headers.Add(HttpRequestHeader.AcceptLanguage,"zh-CN,zh;q=0.8");req.Accept="application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";req.KeepAlive=true;req.Timeout=20000;req.Referer="http://tieba.baidu.com/";//req.Headers.Add(HttpRequestHeader.CacheControl,"max-age=0");req.UserAgent="Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/49.0.2623.110Safari/537.36";req.Method="POST";req.ContentType="text/html;charset=GBK";req.AllowAutoRedirect=true;//设置cookieContainer用来接收cookiereq.CookieContainer=theCC;//对参数进行encodebyte[]data=null;data=Encoding.UTF8.GetBytes(postdata);req.ContentLength=postdata.Length;StreamnewStream=req.GetRequestStream();newStream.Write(data,0,data.Length);newStream.Close();res=(HttpWebResponse)req.GetResponse();StreamReadersr=null;try{sr=newStreamReader(res.GetResponseStream(),Encoding.GetEncoding("gb2312"));strResult=sr.ReadToEnd();//sr.Close();if(strResult!=""&&!strResult.Contains("userName")){res.Close();req.Abort();Console.WriteLine("账号"+username+"登陆成功");stringcookies=theCC.GetCookieHeader(res.ResponseUri);Console.WriteLine(cookies);//HttpContext.Current.Application.Lock();//HttpContext.Current.Application["cookieHeader"]=cookies;//HttpContext.Current.Application.UnLock();}}catch(Exceptiona){a.StackTrace.ToString();Console.WriteLine(a.Message);}}catch(Exceptione){e.StackTrace.ToString();Console.WriteLine(e.Message);//writeLog}finally{if(res!=null){res.Close();}if(req!=null){req.Abort();}}return"";}///<summary>获取页面HTML//////<PARAMname="url">获取的页面地址</PARAM>///<RETURNS></RETURNS>publicstaticstringgetPage(Stringurl,stringreferer){HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url);stringstrResult=string.Empty;//req.Headers["If-None-Match"]="36d0ed736e88c71:d9f";req.Method="GET";req.Timeout=20000;req.Referer=referer;req.CookieContainer=theCC;HttpWebResponseres=(HttpWebResponse)req.GetResponse();StreamReadersr=null;try{sr=newStreamReader(res.GetResponseStream(),Encoding.Default);strResult=sr.ReadToEnd();if(strResult!=null){Console.WriteLine("捕获成功");}}catch(System.Exceptionex){ex.StackTrace.ToString();Console.WriteLine(ex.Message);//writeLog}finally{sr.Close();}returnstrResult;}staticvoidMain(string[]args){Console.WriteLine(Login());Console.WriteLine(Program.getPage("http://tieba.baidu.com/home/main?id=a4d864756c696e6c696ecaa8d7d35e41&fr=userbar","http://tieba.baidu.com/home/main?id=a4d864756c696e6c696ecaa8d7d35e41&fr=userbar"));Console.ReadLine();////Console.ReadLine();}}

解决方案

时间: 2024-09-19 08:59:21

post用户名密码到一个url,实现登录功能,并获取cookie,显示包含登录信息的页面的相关文章

jdic内嵌淘宝登录框,登录后,获取cookie信息

问题描述 jdic内嵌淘宝登录框,登录后,获取cookie信息 现在有个需求,我用JDIC内嵌淘宝的登录页面,登录后如何获取登录的用户的COOKIE,有没有办法获得呢?

jsp中使用cookie显示上次登录时间

问题描述 jsp中使用cookie显示上次登录时间 显示结果: 当前的时间:Sat Dec 06 20:32:36 CST 2014 上次访问时间:FAC2291FFA5623F835BDCB6F1CAE51C6 代码: <% Cookie[] cookies= request.getCookies(); Cookie cookie_response = null; if(cookies!=null){ cookie_response=cookies[0]; } out.println("

Go程序设计语言1.5 获取一个URL

1.5 获取一个URL 对许多应用而言,访问互联网上的信息和访问本地文件系统一样重要.Go提供了一系列包,在net包下面分组管理,使用它们可以方便地通过互联网发送和接收信息,使用底层的网络连接,创建服务器,此时Go的并发特性(见第8章)特别有用. 程序fetch展示从互联网获取信息的最小需求,它获取每个指定URL的内容,然后不加解析地输出.fetch来自curl这个非常重要的工具.显然可以使用这些数据做更多的事情,但这里只讲基本的思路,本书将会频繁用到这个程序:   这个程序使用的函数来自两个包

C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录

      最近学习C#网络编程中,想实现网页自动登录并提交GET/POST信息,再实现循环登录不断发送报文给服务器,服务器发送消息给客户端记录能登录的账户和密码,做到后面实现绕过验证码.动态抓取登录位置等,但由于资料很少.进度缓慢,下面这篇文章仅供大家交流阅读.      也许你可能看过一篇文章关于C#实现POST提交方式中三种提取网页HTML的方法:WebBrowser.WebClient.HttpWebRequest.我也看了很多人的博客,尤其是关于WebBrowser和HttpWebRe

【SSH项目实战】国税协同平台-15.系统、子系统首页&amp;amp;登录功能2

接上一篇:http://blog.csdn.net/acmman/article/details/49614841 我们的子系统界面已经加载出来: 我们找到左边菜单页,给它加链接: <dl class=""> <dt><a class="yh" href="${ctx }tax/role_listUI.action" target="mainFrame"><b></b>

基于AngularJS+HTML+Groovy实现登录功能_AngularJS

AngularJS是开发基于浏览器的响应式RWD应用程序的一个前端MVC框架,由谷歌最初开发的 开源项目,干净的架构吸引了大量粉丝,适合建立CRUD类型的业务应用程序,并不适合开发游戏等应用, 使用声明性编程的用户界面和命令式编程的逻辑, 支持现代桌面和移动浏览器 Internet Explorer版本8.0及以上. AngularJS是一款客户端MVC的javascript框架,而客户端MVC代表未来架构(为什么要使用MVC+REST+CQRS 架构),如果你有Struts或SpringMVC

Android注册登录实时自动获取短信验证码_Android

android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android上获取短信信息主要有BroadcastReceiver方式与数据库方式,要实时的话就BroadcastReceiver比较方便,分享一篇文章大家可以查看一下,点击. public class SMSReceiver extends BroadcastReceiver{ private String ver

jQuery+Ajax用户登录功能的实现_实用技巧

ok,先来贴几张张效果图.     其中大致流程是用户点击页面右上角的登录链接接着弹出div模拟窗口,该窗口通过iframe调用Login.aspx页面,用户输入用户名 密码和验证码后,Login.aspx页面的jQuery代码post到Login.ashx页面处理,Login.ashx页面可以算是简易的aspx页面吧. 当然你用LoginProcess.aspx 也是可以的.Login.ashx页面处理完把结果返回给Login.aspx页面处理,result变量用与接收结果. 如果返回1表示登

Android注册登录实时自动获取短信验证码

android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android上获取短信信息主要有BroadcastReceiver方式与数据库方式,要实时的话就BroadcastReceiver比较方便,分享一篇文章大家可以查看一下,点击. public class SMSReceiver extends BroadcastReceiver{ private String ver