J'ai déjà utilisé un CookieContainer avec des sessions HttpWebRequest et HttpWebResponse, mais maintenant, je veux l'utiliser avec un WebClient. Autant que je sache, il n'y a pas de méthode intégrée comme pour HttpWebRequests ( request.CookieContainer
). Comment puis-je collecter des cookies d'un WebClient dans un CookieContainer?
J'ai cherché cela sur Google et j'ai trouvé l'exemple suivant :
public class CookieAwareWebClient : WebClient
{
private readonly CookieContainer m_container = new CookieContainer();
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
HttpWebRequest webRequest = request as HttpWebRequest;
if (webRequest != null)
{
webRequest.CookieContainer = m_container;
}
return request;
}
}
Est-ce la meilleure façon de le faire?
m_container
n'est jamais défini!? N'est-il pas toujours vide?