最近在尝试使用httpwebrequest来自动登陆淘宝。通过发送 http://member1.taobao.com/member/login.jhtml?TPL_password=密码&TPL_redirect_url=&TPL_username=帐号&_oooo_=&abtest=&action=Authenticator&actionForStable=enable_post_user_action&done=&event_submit_do_login=anything&from=&pstrong=2&yparam= 这样的链接可以转向到我的淘宝页面里,可是只要一获取其它的页面,就都重新返回到登陆页去了。我已经设置了cookie的获取,具体代码如下              HttpWebRequest req = CreateRequest();
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            responseHeaders = res.Headers;
            if (keepContext)
            {
                context.Cookies = res.Cookies;
                context.Referer = url;
            }附加cookie到请求的代码如下              req.CookieContainer.Add(context.Cookies);
把这里得到的cookie附加到一个新的请求里,请求别的页面时,就会自动跳到登陆页里去,而不能正常的获取到页面信息,请问有高手可以帮我解决这个问题吗?100分相赠!

解决方案 »

  1.   

    补充:使用POST方式发送数据,按同样的方式获取cookie,得到的结果也一样,用firebug分析,我获取到的登陆时响应cookie和请求别的页面时附加的cookie并不一样,不知道该怎么做才可以正常获取信息呢?
      

  2.   

    全過程都使用同一個cookies容器
      

  3.   

    我也在做这是的POST的事情,我一开始也是向你这样,但是楼上的说得是一个很好的解决办法,举例:   CookieContainer cc = new CookieContainer();
       for(int i=0;i<100;i++)
       {
        HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://localhost/AspxApp/MainForm.aspx");
        myReq.CookieContainer = cc;
        HttpWebResponse resp = myReq.GetResponse() as HttpWebResponse;
        Stream s = resp.GetResponseStream();
        StreamReader sr = new StreamReader(s);    String text = sr.ReadToEnd();
        sr.Close();
        s.Close();
       }AspxApp这个程序返回的内容就是SessionId,这100个请求SessionId是相同的