解决方案 »

  1.   

    简单贴下代码: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赋值) ),但是这次一访问就会更换动态秘钥了,我之前获取的也就不正确了。)
      

  2.   

    换个格式。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赋值) ),但是这次一访问就会更换动态秘钥了,我之前获取的也就不正确了。)
      

  3.   

    访问登录浏览器应该会在本地生成相应的SessionID储存在本地,
    你的模拟提交有没有试过Ajax提交?
      

  4.   

    200分?小弟只有100来个分
    200RMB茶钱
      

  5.   

    200分?小弟只有100来个分
    200RMB茶钱
    您喝这茶,这对小弟来说 是1个星期的生活费啊!抱歉,给不起啊。
      

  6.   

    httpwebrequest.CookieContainer = new HttpCookieContainer();然后获取response的Cookie(登陆凭证),下次请求的时候,带上这个凭证
      

  7.   

    我是这么写的:
    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传的值变了?)
      

  8.   

    补充一下  httpwebrequest.CookieContainer    co = new HttpCookieContainer();
      

  9.   

    不会出现你描述的那个问题,问题要么出在你cookie上面(如部分为js设置cookie你post时并没有带上),要么就是出在你post的data上面(抓包看下是否和正常访问传参相同),还有就你没看清返回的页面,比如 页尾有个js跳转代码,比如页头有个 alter错误提示。
      

  10.   

    谢谢各位帮忙,问题已经解决,方法是 将Request的KeepAlive属性设置成true,建立永久性连接。