【发布时间】:2012-06-25 05:30:10
【问题描述】:
我正在尝试对一些代码进行单元测试,我需要替换它:
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create( uri );
httpWebRequest.CookieContainer = new CookieContainer();
与
WebRequest webRequest = WebRequest.Create( uri );
webRequest.CookieContainer = new CookieContainer();
基本上,如何在不使用 HttpWebRequest 的情况下将 cookie 放入请求中?
【问题讨论】:
-
这很难,因为 cookie 是一个 HTTP 概念。您是否有理由需要进行此更改?
-
@dlev - WebRequest 将基于 uri 创建一个 HttpWebRequest。因此,如果我想模拟我自己的 WebRequest 对象和/或注册我自己的也返回 WebRequest 的 uri,那么我不想将方法限制为仅使用 HttpWebRequest 对象。
-
我知道
webRequest的运行时类型将是HttpWebRequest。但是访问CookieContainer需要编译时类型为HttpWebRequest。另外,您提到不要将自己限制在 HTTP 上,但在这种情况下,cookie 并没有多大意义,因为它们是一种 HTTP 构造(这就是它们首先出现在WebRequest上的原因。) -
dlev - 这就是为什么我正在寻找一种添加 cookie 的运行时方式。想象一下,如果我说 if ... 然后 addcookies ^^
-
看这个页面。 stackoverflow.com/questions/18667931/… 这对我很有帮助
标签: c# .net unit-testing