Usando CookieContainer com classe WebClient
Eu usei anteriormente um CookieContainer com sessões HttpWebRequest e HttpWebResponse, mas agora, eu quero usá-lo com um WebClient. Tanto quanto eu entendo, não há nenhum método embutido como existe para HttpWebRequests (request.CookieContainer
).Como posso coletar cookies de um WebClient em um CookieContainer?
I pesquisei por isso e encontradoa seguinte amostra:
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;
}
}
Esse é o melhor jeito de fazer isso?