马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

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

  [复制链接]
查看9284 | 回复7 | 2014-1-13 19:16:19 | 显示全部楼层 |阅读模式
本帖最后由 websos 于 2014-1-14 13:46 编辑

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

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

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

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

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

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

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

}Z@~W6ILZXNZGTRXXCJ@~TE.jpg

ibcadmin | 2014-1-13 21:32:32 | 显示全部楼层
[C#] 纯文本查看 复制代码
//写入
  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);//输出全部的值
    }
  }

C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
websos | 2014-1-14 12:09:30 | 显示全部楼层
ibcadmin 发表于 2014-1-13 21:32
[mw_shl_code=csharp,true]//写入
  protected void Button1_Click(object sender, EventArgs e)
  { ...

不胜感激
ibcadmin | 2014-1-14 16:28:52 | 显示全部楼层
你Cookie中保存的是什么类型?
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
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 | 显示全部楼层
这个试试
[C#] 纯文本查看 复制代码
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;


C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
websos | 2014-1-14 20:31:10 | 显示全部楼层
ibcadmin 发表于 2014-1-14 18:44
这个试试
[mw_shl_code=csharp,false]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 | 显示全部楼层
那就不会了。。。
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则