首页 .Net .Net Core(C#) 使用WebClient执行请求时配置cookie的方法及示例代码

.Net Core(C#) 使用WebClient执行请求时配置cookie的方法及示例代码

1、通过WebClient对象的Headers设置cookie

 WebClient wb = new WebClient();
 wb.Headers.Add(HttpRequestHeader.Cookie, "somecookie");
//设置一个cookie值
wb.Headers.Add(HttpRequestHeader.Cookie, "cookiename=cookievalue"); 
//设置多个cookie值
wb.Headers.Add(HttpRequestHeader.Cookie, 
              "cookiename1=cookievalue1;" +
              "cookiename2=cookievalue2");

2、重写WebClient的方法维护设置cookie

public >WebClientCookie : WebClient
{
    public WebClientCookie(CookieContainer container)
    {
        this.container = container;
    }
   public CookieContainer CookieContainer
   {
         get { return container; }
         set { container= value; }
    }
    // 设置自己想要添加的登陆信息等cookie
   public void SetCustCookie(string name,string value, string path,string domain)
    {
     CookieCollection cookies = new CookieCollection();
     cookies.Add(new Cookie(name.Trim(), value.Trim(), path, domain));
      container.Add(cookies);
     }
    private CookieContainer container = new CookieContainer();
    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest r = base.GetWebRequest(address);
        var request = r as HttpWebRequest;
        if (request != null)
        {
            request.CookieContainer = container;
        }
        return r;
    }
    protected override WebResponse GetWebResponse(WebRequest request, IAsyncResult result)
    {
        WebResponse response = base.GetWebResponse(request, result);
        ReadCookies(response);
        return response;
    }
    protected override WebResponse GetWebResponse(WebRequest request)
    {
        WebResponse response = base.GetWebResponse(request);
        ReadCookies(response);
        return response;
    }
    private void ReadCookies(WebResponse r)
    {
        var response = r as HttpWebResponse;
        if (response != null)
        {
            CookieCollection cookies = response.Cookies;
            container.Add(cookies);
        }
    }
}

相关文档.Net(C#) 后台使用webclient(客户端控制台程序)执行Get和Post请求的方法-CJavaPy

特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。