Kullanarak WebClient sınıfı ile CookieContainer | Netgez.com
SORU
21 Kasım 2009, CUMARTESİ


Kullanarak WebClient sınıfı ile CookieContainer

Daha önce HttpWebRequest ve HttpWebResponse oturumları ile bir CookieContainer kullandım, ama şimdi, bir WebClient ile kullanmak istiyorum. Anladığım kadarıyla, yerleşik HttpWebRequests (request.CookieContainer) gibi bir yöntem yoktur.Nasıl bir CookieContainer bir WebClient çerezleri toplamak miyim?

5* ben *bu the following sample buldu

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;
    }
}

Bu en iyi yolu yapmaktır?

CEVAP
22 Kasım 2009, Pazar


Evet. , () IMHO ağır basan GetWebRequest Professional (Service sınırlı functionalty için en iyi çözümdür. Bu seçenek gelmeden önce, HttpWebRequest katmanında neredeyse Professional (Service çünkü gerçekten acı bir sürü kod yazdım, ama ihtiyacım olan şey tam değil, yaptı. Çıkarılması çok daha kolaydır.

Başka bir seçenek düzenli WebClient sınıfını kullanın, ama sadece el Çerez Başlığı doldurmak isteği yapmadan önce ve yanıtı Set-Kurabiye başlığındaki dışarı çekin. Ve bu başlıkları oluşturma ayrıştırma yapmak CookieContainer sınıfı yardımcı yöntem daha vardır: CookieContainer.SetCookies() CookieContainer.GetCookieHeader(), sırasıyla.

Arayan daha kolay oluyor ve ikinci seçenek daha az tekrarlayan kod gerektirir beri eski yaklaşım tercih ederim. Ayrıca, türetme yaklaşımı birden fazla kullanildigini senaryolar için (örneğin çerez, proxy, vb.) çalışır.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • CasinoRoyaleMovie's channel

    CasinoRoyale

    1 AÄžUSTOS 2006
  • Kindness

    Kindness

    23 Ocak 2006
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011