首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Webclient获取CookieContainer并设置此CookieContainer

使用Webclient获取CookieContainer并设置此CookieContainer
EN

Stack Overflow用户
提问于 2014-04-30 15:17:37
回答 1查看 391关注 0票数 0

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

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

发布于 2014-04-30 15:46:16

你能试试这个吗?

代码语言:javascript
复制
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;
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23381944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档