请教一个模拟登陆的问题!!求高手帮忙!! post模拟登陆asp.net 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单贴下代码:httpwebrequest req=webrequest.create(url) as httpwebrequest;//(1.访问)httpwebresponse res=req.getresponse() as httpwebresponse;//(2.返回,并接收抓取想要的 登陆页面 秘钥 值)httpwebrequest req=webrequest.create(url) as httpwebrequest;//(3.访问并模拟提交post登陆。在提交post之前必须有这个访问(不加这句访问会提示报错:写入开始后不能设置此属性(不能给req赋值) ),但是这次一访问就会更换动态秘钥了,我之前获取的也就不正确了。) 换个格式。HttpWebRequest req=WebRequest.Create(url) as HttpWebRequest;//(1.访问)HttpWebResponse res=req.GetResponse() as HttpWebResponse;//(2.返回,并接收抓取想要的 登陆页面 秘钥 值)HttpWebRequest req=WebRequest.Create(url) as HttpWebRequest;//(3.看下面介绍)(3.访问并模拟提交post登陆。在提交post之前必须有这个访问(不加这句访问会提示报错:写入开始后不能设置此属性(不能给req赋值) ),但是这次一访问就会更换动态秘钥了,我之前获取的也就不正确了。) 访问登录浏览器应该会在本地生成相应的SessionID储存在本地,你的模拟提交有没有试过Ajax提交? 200分?小弟只有100来个分200RMB茶钱 200分?小弟只有100来个分200RMB茶钱您喝这茶,这对小弟来说 是1个星期的生活费啊!抱歉,给不起啊。 httpwebrequest.CookieContainer = new HttpCookieContainer();然后获取response的Cookie(登陆凭证),下次请求的时候,带上这个凭证 我是这么写的:httpwebrequest.CookieContainer = new HttpCookieContainer();第一次请求(用于获取页面动态key):HttpWebRequest req=WebRequest.Create(url) as HttpWebRequest;req.CookiceContainer=co;第二次请求(用于post提交)HttpWebRequest req=WebRequest.Create(url) as HttpWebRequest;req.CookiceContainer=co;返回页面。然后返回的 还是登陆页面。并不是登陆成功页面。(是不是还是 那个动态key传的值变了?) 补充一下 httpwebrequest.CookieContainer co = new HttpCookieContainer(); 不会出现你描述的那个问题,问题要么出在你cookie上面(如部分为js设置cookie你post时并没有带上),要么就是出在你post的data上面(抓包看下是否和正常访问传参相同),还有就你没看清返回的页面,比如 页尾有个js跳转代码,比如页头有个 alter错误提示。 谢谢各位帮忙,问题已经解决,方法是 将Request的KeepAlive属性设置成true,建立永久性连接。 sqldatasource调用存储过程传入参数问题如何解决 关于关闭所有IE时,用户自动退出 Visual Studio 2005 发布网站时,目标文件夹是空的 关于三层结构! 大家有没有发现你生成的缩略图高宽变小了但是本来是100kb缩了以后还是100kb有时更大 请教如何处理asp.net中SQl错误! 怎么我在webform里放了一个datalist预览时候看不到阿? NPOI导出到EXCEL 如何设置默认行高 急求:向oracle中的日期类型中插入空值 向大家请教:哪一种mailServer最好,邮箱用户上限可以达到20万以上?我公司想购买。 linq查询语句的问题 动态添加多行
httpwebresponse res=req.getresponse() as httpwebresponse;//(2.返回,并接收抓取想要的 登陆页面 秘钥 值)
httpwebrequest req=webrequest.create(url) as httpwebrequest;//(3.访问并模拟提交post登陆。在提交post之前必须有这个访问(不加这句访问会提示报错:写入开始后不能设置此属性(不能给req赋值) ),但是这次一访问就会更换动态秘钥了,我之前获取的也就不正确了。)
HttpWebResponse res=req.GetResponse() as HttpWebResponse;//(2.返回,并接收抓取想要的 登陆页面 秘钥 值)
HttpWebRequest req=WebRequest.Create(url) as HttpWebRequest;//(3.看下面介绍)(3.访问并模拟提交post登陆。在提交post之前必须有这个访问(不加这句访问会提示报错:写入开始后不能设置此属性(不能给req赋值) ),但是这次一访问就会更换动态秘钥了,我之前获取的也就不正确了。)
你的模拟提交有没有试过Ajax提交?
200RMB茶钱
200RMB茶钱
您喝这茶,这对小弟来说 是1个星期的生活费啊!抱歉,给不起啊。
httpwebrequest.CookieContainer = new HttpCookieContainer();
第一次请求(用于获取页面动态key):
HttpWebRequest req=WebRequest.Create(url) as HttpWebRequest;
req.CookiceContainer=co;
第二次请求(用于post提交)
HttpWebRequest req=WebRequest.Create(url) as HttpWebRequest;
req.CookiceContainer=co;
返回页面。
然后返回的 还是登陆页面。并不是登陆成功页面。(是不是还是 那个动态key传的值变了?)