用fiddler看看在网页面上正常情况下是如何的,
如果中间有302跳转,导致cookie没有回传回来的

解决方案 »

  1.   

    我第一个请求就是进入http://www.baidu.com/
    获得百度的一个COOKIE然后用这个COOKIE进入百度的另一个页面
    https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=true
    如果login_token如果有值就那cookie传入正确,但是每次都提示the fisrt two args should be string type:0,1!
      

  2.   

    顶一下 ,没做过web
     
      

  3.   

    http://blog.csdn.net/archerluke/article/details/6310893
      

  4.   

    这个cookie获得好像不全
    BDSVRTM=0; H_PS_PSSID=3784_4199_1434_4321_4414_4263_4450
    另一个Java程序获得的COOKIE
    BAIDUID=3ED25B738DA43F24CC0482CD03B23CAE:FG=1;BDSVRTM=0;H_PS_PSSID=1464_4420_4415_4405_4263_445
     
      

  5.   

    cookie有有效期和域的限制,这两个非常重要,你必须单独处理,而不能直接拿上次获取的cookie用在下次。
      

  6.   

    cookie获得后马上就使用的,而且从百度拿到了,第二个页面也是百度的。
    我用JavaSE使用没有问题。
    C#我不知道错在哪里
      

  7.   

    你确定第二个页面的地址没有给错吗?我怎么不管是否登录,打开那个页面都是给我输出一段代码文字,这让我如何测试?
    要清空cookie,然后直接打开页面就会提示,打开那个页面需要百度的一个COOKIE
      

  8.   

    我清空了Cookie的,但是打开的时候,百度会自动分配我2个cookie,打开也没有报错,如果不情况的话,我能查到5个cookie,清空后也可以打开,临时分配我2个cookie而已,而且不论是否清空cookie,打开看到的效果一样(谷歌浏览器测试的)。我想我没必要为了查看cookie的情况,单独写段程序吧,直接浏览器调试效果更好,更能说明情况。
      

  9.   

    原来那个页面是作为jsonp的方式返回的,难怪看起来都是代码,怪怪的。
    可以确定一点,你必须提供BAIDUID和H_PS_PSSID这两个Cookie,也只需要这两个,不要多余的。另外这两个Cookie的所属域必须是.baidu.com,不能带www,因为那个涉及到跨域传递Cookie,从www.baidu.com的传递到passport.baidu.com
      

  10.   

    cookie获得后马上就使用的,而且从百度拿到了,第二个页面也是百度的。
    我用JavaSE使用没有问题。
    C#我不知道错在哪里
    既然java能用,为什么还要搞另一种?
      

  11.   

     string ckstr = response.Header["Set-Cookie"];用这种方式  取一下Cookies 试试
      

  12.   

    取cookie没有问题,问题在请求的时候怎么加入cookie,我不知道错哪了,加进去的时候好像少了,第一次请求得到了3个cookie,但是每次赋值的时候只有两个,少了一个BAIDUID的cookie
      

  13.   

    domain的问题 如果多个二级域名之间共享cookie,则设置domain=dipan.com 不要写 domain=sg7.dipan.com取cookie没有问题,问题在请求的时候怎么加入cookie,我不知道错哪了,加进去的时候好像少了,第一次请求得到了3个cookie,但是每次赋值的时候只有两个,少了一个BAIDUID的cookie
      

  14.   

    添加cookie的时候,如果删除域名设置,直接报错,因为它不是简单的添加,而是要验证域名是否一致,因此你需要自己判断那个域名,并修改到一致的域名上再添加,我11楼已经提醒过你有域的限制,你却不当回事,18楼更是指出了域的实际内容,你还看不懂问题所在吗?
      

  15.   

    你的cookie用错了
    CookieContainer cookieContainer=new CookieContainer();
    HttpWebRequest hp = null;
    //把cookie放入当次请求中
    hp.CookieContainer = this.cookieContainer;//响应后把cookie存起来,以便下次请求时用
    HttpWebResponse wr = (HttpWebResponse)hp.GetResponse();
    cookieContainer.Add(wr.Cookies);
      

  16.   

    将cookie 根据分号,分割成多组;然后分别依次加入
      

  17.   


    我第一次请求的时候有把cookie存到一个对象里,第二次请求的是有有add(cookie)不过CookieContainer 不是同一个这个有关系?
      

  18.   

    域名我已经看过了哪两个都是.baidu.com,所以不是cookie的问题,是C#代码某个地方错啦
      

  19.   


    我第一次请求的时候有把cookie存到一个对象里,第二次请求的是有有add(cookie)不过CookieContainer 不是同一个这个有关系?当然要用同一个啦,因为你第二次请求想用第一次请求的会话