有没有一种方法可以清除CookieContainer?

4

我希望能够在不需要初始化新的CookieContainer、HttpClientHandler和HttpClient的情况下清除CookieContainer中接收到的所有cookie。是否有方法可以做到这一点?我已经检查了MSDN,但似乎我只能使用GetCookies(Uri)来获取与特定Uri相关联的所有cookie。

var cc = new CookieContainer();

var handler = new HttpClientHandler
    {
        CookieContainer = cc
    };

var client = new HttpClient(handler);

看起来你需要使用反射。创建一个新的HttpClient有什么问题吗?https://dev59.com/RGQo5IYBdhLWcg3whPvI - dana
@dana:我只是觉得,因为我正在使用多个任务,所以这可能会浪费资源。 - derekhh
2
就我个人而言,如果另一种选择是使用反射来突破私有成员,那么我不会担心创建一个类的几个实例。特别是因为您已经在通过HTTP进行网络请求了。 - dana
1个回答

6
我知道的唯一解决方案是使所有cookie过期:
        cc.GetCookies(new Uri(...))
            .Cast<Cookie>()
            .ToList()
            .ForEach(c => c.Expired = true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接