Wcześniej użyłem CookieContainer z sesjami HttpWebRequest i HttpWebResponse, ale teraz chcę go używać z WebClient. O ile rozumiem, nie ma wbudowanej metody, takiej jak w przypadku HttpWebRequests ( request.CookieContainer
). Jak mogę zbierać pliki cookie z WebClient w CookieContainer?
I googled to i znaleźć następujące próbki :
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;
}
}
Czy to najlepszy sposób na zrobienie tego?
m_container
nigdy nie jest ustawione !? Czy to nie zawsze jest puste?