Я ранее использовал CookieContainer с сеансами HttpWebRequest и HttpWebResponse, но теперь я хочу использовать его с WebClient. Насколько я понимаю, нет встроенного метода, подобного HttpWebRequests (request.CookieContainer
). Как я могу собирать файлы cookie из WebClient в CookieContainer?Использование CookieContainer с классом WebClient
Я googled для этого и нашел the following sample:
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;
}
}
Это лучший способ сделать это?
С моей точки зрения 'm_container' никогда не установлен !? Разве это всегда пусто? – C4u
Я считаю, что класс HttpWebRequest модифицирует класс m_container, используя его внутреннее поле CookieContainer по мере необходимости. – HeartWare
Это все, что вам нужно! Куки из ответов будут автоматически добавлены в контейнер. – lionello