首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何向WebRequest添加cookies?

如何向WebRequest添加cookies?
EN

Stack Overflow用户
提问于 2012-06-23 05:18:31
回答 4查看 104.9K关注 0票数 36

我正在尝试对一些代码进行单元测试,我需要替换以下代码:

代码语言:javascript
复制
  HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create( uri );
  httpWebRequest.CookieContainer = new CookieContainer();

使用

代码语言:javascript
复制
  WebRequest webRequest = WebRequest.Create( uri );
  webRequest.CookieContainer = new CookieContainer(); 

基本上,如何在不使用HttpWebRequest的情况下将cookies添加到请求中?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-23 05:37:55

根据您的注释,您可以考虑编写一个extension method

代码语言:javascript
复制
public static bool TryAddCookie(this WebRequest webRequest, Cookie cookie)
{
    HttpWebRequest httpRequest = webRequest as HttpWebRequest;
    if (httpRequest == null)
    {
        return false;
    }

    if (httpRequest.CookieContainer == null)
    {
        httpRequest.CookieContainer = new CookieContainer();
    }

    httpRequest.CookieContainer.Add(cookie);
    return true;
}

然后你就可以像这样编写代码:

代码语言:javascript
复制
WebRequest webRequest = WebRequest.Create( uri );
webRequest.TryAddCookie(new Cookie("someName","someValue"));
票数 37
EN

Stack Overflow用户

发布于 2012-06-23 05:39:17

WebRequest是一个没有CookieContainer属性的抽象类。此外,您不能使用Headers集合(未实现异常),因此任何尝试,如webRequest.Headers.Add("Cookie","...")都会失败。

很抱歉,您没有机会在WebRequest中使用cookies。

坚持使用HttpWebRequest,并使用其Headers集合添加/编辑任意数量的cookies!

票数 7
EN

Stack Overflow用户

发布于 2012-06-23 05:28:26

试着这样做:

代码语言:javascript
复制
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/default.html");
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(new Cookie("ConstoCookie", "Chocolate Flavour"));
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11164275

复制
相关文章

相似问题

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