如何解决SetCookie是添加新的cookie而不是更新现有的cookie?
对不起,如果我错过了显而易见的事情。我仍在努力学习有关C#的知识。我已经阅读了CookieContainer,CookieCollection和Cookie的文档。我什至在GitHub上查看了源代码。所以我真的在努力。这只是很多信息。
我认为答案在这里的某个地方,但是我真的不知道我在看什么: https://github.com/microsoft/referencesource/blob/f461f1986ca4027720656a0c77bede9963e20b7e/System/net/System/Net/cookiecontainer.cs#L632
所以这是我今天遇到的一个问题...我似乎无法弄清楚为什么SetCookies()为什么要添加一个新的cookie,而不是匹配已经存在的cookie并更新其值。 / p>
我唯一能想到的是,也许是因为第一个cookie是通过CookieCollection添加的,所以它以某种方式隔离在该CookieCollection中?即使GetCookies返回了它?
using System;
using System.Net;
public class Program
{
public static void Main()
{
var ckcol = new CookieCollection();
ckcol.Add(new Cookie("testcookie","testing","/","example.com"));
var ckcon = new CookieContainer();
ckcon.Add(ckcol);
// Returns a single cookie "testcookie=testing"
ckcon.GetCookies(new Uri("http://example.com/")).Dump();
// Instead of updating the matching cookie...it adds a new one
ckcon.SetCookies(new Uri("http://example.com/"),"testcookie=CHANGED");
// Returns two cookies "testcookie=testing" and "testcookie=CHANGED"
ckcon.GetCookies(new Uri("http://example.com/")).Dump();
// This time it updates the right cookie
ckcon.SetCookies(new Uri("http://example.com/"),"testcookie=ANOTHER CHANGE");
// Returns two cookies "testcookie=testing" and "testcookie=ANOTHER CHANGE"
ckcon.GetCookies(new Uri("http://example.com/")).Dump();
}
}
当比较cookie的每个属性时,我似乎无法弄清为什么它不起作用?
DotNetfiddle链接:https://dotnetfiddle.net/S8AV3E
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。