求助post提交带cookie并且返回cookie的方法
本帖最后由 websos 于 2014-1-14 13:46 编辑本人是c#的爱好者+初学者,今天做论坛登陆的时候成功了,可是访问帖子还是显示没有登陆
我不知道怎么httpwebrequest带cookie和返回cookie操作
楼下那哥们的没看明白,虽然传入cookie已经解决,但是问题又来了
直接上图吧,问题是只要给sendCookie传入cookie值,后面的request.cookie和respone.cookie都没有cookie了
如果不传入那么这次请求将会返回cookie
我的目的是每次请求都要传入和返回cookie,因为许多页面不同验证都会返回不同的cookie
大神们看到也不要喷,我一个新手对这些也不怎么懂,希望友友给予帮助,谢谢了
//写入
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);//输出全部的值
}
}
ibcadmin 发表于 2014-1-13 21:32
//写入
protected void Button1_Click(object sender, EventArgs e)
{ ...
不胜感激 你Cookie中保存的是什么类型? ibcadmin 发表于 2014-1-14 16:28
你Cookie中保存的是什么类型?
CookieContainer ,登陆和发帖或者签到都可以实现了,问题是有些网站二次验证身份的,那样第一次验证后得到cookie,第二次带第一次的cookie提交获得一个新的cookie,这样我不知道怎么实现一次请求中提交一个cookie并且返回一个新的cookie 这个试试
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;
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);
}
}
我这样写的,和你给的代码一个方式,但测试结果还是不行,问题依旧 那就不会了。。。
页:
[1]