c# - 将 CookieContainer 与 WebClient 类一起使用

标签 c# cookies httpwebrequest webclient cookiecontainer

我以前曾将 CookieContainer 与 HttpWebRequest 和 HttpWebResponse session 一起使用,但现在,我想将它与 WebClient 一起使用。据我所知,没有像 HttpWebRequests (request.CookieContainer) 这样的内置方法。 如何从 CookieContainer 中的 WebClient 收集 cookie?

googled为此,找到了the following sample :

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

这是最好的方法吗?

最佳答案

 WebClient wb = new WebClient();
 wb.Headers.Add(HttpRequestHeader.Cookie, "somecookie");

来自评论

如何格式化 cookie 的名称和值来代替“somecookie”?

wb.Headers.Add(HttpRequestHeader.Cookie, "cookiename=cookievalue"); 

对于多个 cookie:

wb.Headers.Add(HttpRequestHeader.Cookie, 
              "cookiename1=cookievalue1;" +
              "cookiename2=cookievalue2");

关于c# - 将 CookieContainer 与 WebClient 类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777221/

相关文章:

php - Symfony 1.4 cookie 问题

c# - 变形此序列的最优雅方式

c# - 从 web 服务下载文件 - 在 ASP.NET 站点中

php - 在 session 之外,我有哪些选项可以将客户购物篮内容存储在我的网站上?

javascript - 如何将自定义宽度保存到 cookie 中?

c# - 使用 C# 中的 post 请求上传到 box.net

c# - HttpWebRequest post 返回 422 错误

java - 输入流和BufferedReader

c# - 如何防止它在listview中被添加2次

c# - 浏览器成功但 HttpWebRequest 失败(超时)