Trước đây tôi đã sử dụng CookieContainer với các phiên httpWebRequest và HttpWebResponse, nhưng bây giờ, tôi muốn sử dụng nó với WebClient. Theo như tôi hiểu, không có phương thức tích hợp nào giống như đối với HttpWebRequests ( request.CookieContainer
). Làm cách nào tôi có thể thu thập cookie từ WebClient trong CookieContainer?
Tôi googled cho điều này và tìm thấy mẫu sau :
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;
}
}
Đây có phải là cách tốt nhất để làm điều đó?
m_container
là không bao giờ được thiết lập!? Có phải nó luôn trống không?