添加到cookcontainer时抛出CookieException;饼干不要太久

本文关键字:饼干 CookieException cookcontainer 添加 | 更新日期: 2023-09-27 17:51:20

当向CookieContainer添加Cookie时,我得到了一个CookieException,如下所示:

        ProxyRequest.CookieContainer = new CookieContainer();
        Uri serverUri = new Uri(ServerURL);
        foreach (string name in Context.Request.Cookies.AllKeys)
        {
            var requestCookie = Context.Request.Cookies[name];
            ProxyRequest.CookieContainer.Add(new Cookie(requestCookie.Name, requestCookie.Value, "/", serverUri.DnsSafeHost));
        }

CookieException的文档说明,当cookie大于CookieContainer中的MaxCookieSize时,会发生这种情况;然而,MaxCookieSize是4096,这个cookie只有96字节长。

4096限制是容器中所有饼干加在一起的限制吗?我得到这个异常还有其他原因吗?

例外的消息是:The 'Value'='84-B2,PX,TT|15-TL|30-T6,TL|23-GA,TL,TT|29-MR|25-CX,GA,TT|31-CX,GA,PX|9-B2,TF,TR|7-B2,CX,PX,TL,TT' part of the cookie is invalid.

添加到cookcontainer时抛出CookieException;饼干不要太久

可能您的域名有其他cookie,每个站点不能存储超过20个cookie。

通过使用带有子键的单个cookie,您可以使用站点分配的20个cookie中的更少的cookie。

此外,单个cookie占用大约50个字符作为开销(过期信息等),再加上存储在其中的值的长度,所有这些都计入4096字节的限制。如果您存储五个子键而不是五个单独的cookie,则可以节省单独cookie的开销,并且可以节省大约200字节。

希望对您有所帮助

拉胡尔耆那教的rahulmanasa