J'ai déjà utilisé un CookieContainer avec HttpWebRequest et HttpWebResponse sessions, mais maintenant, je veux l'utiliser avec un client web. Comme je le comprends, il n'est pas intégré dans la méthode comme pour HttpWebRequests (request.CookieContainer
). Comment puis-je récupérer les cookies à partir d'un client web dans un CookieContainer?
J'ai googlé pour cela et 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?