websos 发表于 2014-1-13 19:16:19

求助post提交带cookie并且返回cookie的方法

本帖最后由 websos 于 2014-1-14 13:46 编辑

本人是c#的爱好者+初学者,今天做论坛登陆的时候成功了,可是访问帖子还是显示没有登陆

我不知道怎么httpwebrequest带cookie和返回cookie操作

楼下那哥们的没看明白,虽然传入cookie已经解决,但是问题又来了

直接上图吧,问题是只要给sendCookie传入cookie值,后面的request.cookie和respone.cookie都没有cookie了

如果不传入那么这次请求将会返回cookie

我的目的是每次请求都要传入和返回cookie,因为许多页面不同验证都会返回不同的cookie

大神们看到也不要喷,我一个新手对这些也不怎么懂,希望友友给予帮助,谢谢了



ibcadmin 发表于 2014-1-13 21:32:32

//写入
  protected void Button1_Click(object sender, EventArgs e)
  {
    HttpCookie cookie=new HttpCookie("MyCook");//初使化并设置Cookie的名称
    DateTime dt=DateTime.Now;
    TimeSpan ts = new TimeSpan(0, 0, 1,0,0);//过期时间为1分钟
    cookie.Expires = dt.Add(ts);//设置过期时间
    cookie.Values.Add("userid", "userid_value");
    cookie.Values.Add("userid2","userid2_value2");
    Response.AppendCookie(cookie);
    //输出该Cookie的所有内容
    //Response.Write(cookie.Value);//输出为:userid=userid_value&userid2=userid2_value2
  }

  //读取
  protected void Button2_Click(object sender, EventArgs e)
  {

    // HttpCookie cokie = new HttpCookie("MyCook");//初使化
    if (Request.Cookies["MyCook"]!=null)
    {
      //Response.Write("Cookie中键值为userid的值:" + Request.Cookies["MyCook"]["userid"]);//整行
      //Response.Write("Cookie中键值为userid2的值" + Request.Cookies["MyCook"]["userid2"]);
      Response.Write(Request.Cookies["MyCook"].Value);//输出全部的值
    }
  }

websos 发表于 2014-1-14 12:09:30

ibcadmin 发表于 2014-1-13 21:32
//写入
  protected void Button1_Click(object sender, EventArgs e)
  { ...

不胜感激

ibcadmin 发表于 2014-1-14 16:28:52

你Cookie中保存的是什么类型?

websos 发表于 2014-1-14 16:41:32

ibcadmin 发表于 2014-1-14 16:28
你Cookie中保存的是什么类型?

CookieContainer   ,登陆和发帖或者签到都可以实现了,问题是有些网站二次验证身份的,那样第一次验证后得到cookie,第二次带第一次的cookie提交获得一个新的cookie,这样我不知道怎么实现一次请求中提交一个cookie并且返回一个新的cookie

ibcadmin 发表于 2014-1-14 18:44:49

这个试试
WebResponse responseTemp = (HttpWebResponse)request.GetResponse();
response = (HttpWebResponse)responseTemp;
CookieContainer c = new CookieContainer();
c.Add(response.Cookies);





//创建Cooike并发送Cooike
CookieContainer cookie = new CookieContainer();

//将Cooike附加到请求中
Cookie c = new Cookie();
c.Name = "recommendid";
c.Domain = "www.*.com";
c.Value = "000";
TimeSpan ts = new TimeSpan(1, 0, 0, 0, 0);
c.Expires = new DateTime(2008, 1, 1);
cookie.Add(c);
wreq.CookieContainer = cookie;


websos 发表于 2014-1-14 20:31:10

ibcadmin 发表于 2014-1-14 18:44
这个试试
WebResponse responseTemp = (HttpWebResponse)request.GetResponse( ...

CookieContainer cookie=new CookieContainer();
request.CookieContainer=cookie;
if (sendCookie != null)
            {
                foreach (Cookie cook in sendCookie.GetCookies(request.RequestUri))
                {
                  request.CookieContainer.Add(cook);
                }
               
            }

我这样写的,和你给的代码一个方式,但测试结果还是不行,问题依旧

ibcadmin 发表于 2014-1-14 21:02:57

那就不会了。。。
页: [1]
查看完整版本: 求助post提交带cookie并且返回cookie的方法