【问题标题】:Get CookieContainer with Webclient and Set this CookieContainer使用 Webclient 获取 CookieContainer 并设置此 CookieContainer
【发布时间】:2014-06-16 09:52:02
【问题描述】:

我使用 Webclient 类,首先我用它做一个 Post 请求并将登录数据发送到服务器。从这篇文章中我想要 CookieContainer,但我怎样才能得到这个? 在此之后,我想向同一台服务器发送一个 Get 请求,并立即使用 Post 请求中的 CookieContainer。所以我首先要获取 cookie,其次要设置它。但是它是如何与 Webclient 类一起工作的呢?我发现了这样的东西:

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

但是使用这个类,我也不能在 Get 请求中使用 Post 请求中的 CookieContainer。

【问题讨论】:

    标签: c# http post cookies windows-phone-8


    【解决方案1】:

    你可以试试这个

    public class CookieAwareWebClient : WebClient
    {
      private static CookieContainer m_container = null;
    
      protected override WebRequest GetWebRequest(Uri address)
      {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest webRequest = request as HttpWebRequest;
        if (m_container != null)
        {
            webRequest.CookieContainer = m_container;// will be called from the second time onwards
        }
        else
        {
          webRequest.CookieContainer = new CookieContainer();// First time
          m_container =  webRequest.CookieContainer; // Copy the container after the post is success
        }
        return request;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 2014-06-14
      • 2013-04-05
      • 2010-11-06
      • 2012-08-15
      相关资源
      最近更新 更多