2015-10-08 65 views
2

我想清除CookieContainer中收到的所有Cookie,而无需初始化新的CookieContainer,HttpClientHandler和HttpClient。有没有办法?我检查了MSDN,但似乎我只能使用GetCookies(Uri)获取与特定Uri相关的所有Cookie。有没有办法清除CookieContainer?

var cc = new CookieContainer(); 

var handler = new HttpClientHandler 
    { 
     CookieContainer = cc 
    }; 

var client = new HttpClient(handler); 
+0

看来你需要使用反射。创建新的HttpClient有什么问题? http://stackoverflow.com/questions/15983166/how-can-i-get-all-cookies-of-a-cookiecontainer – dana

+0

@dana:我只是觉得它可能是浪费资源,因为我使用多个任务。 – derekhh

+2

就我个人而言,如果替代方法是使用反射来闯入私人成员,我不会担心创建一个类的更多实例。由于您已通过HTTP发出网络请求,因此尤其如此。 – dana

回答

0

我所知道的唯一的解决办法是过期所有Cookie:

 cc.GetCookies(new Uri(...)) 
      .Cast<Cookie>() 
      .ToList() 
      .ForEach(c => c.Expired = true); 
相关问题