O.O*_*O.O 30 .net c# unit-testing
我试图对一些代码进行单元测试,我需要替换它:
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create( uri );
httpWebRequest.CookieContainer = new CookieContainer();
Run Code Online (Sandbox Code Playgroud)
同
WebRequest webRequest = WebRequest.Create( uri );
webRequest.CookieContainer = new CookieContainer();
Run Code Online (Sandbox Code Playgroud)
基本上,如何在不使用HttpWebRequest的情况下将cookie添加到请求中?
dle*_*lev 34
根据您的意见,您可以考虑编写扩展方法:
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;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以有如下代码:
WebRequest webRequest = WebRequest.Create( uri );
webRequest.TryAddCookie(new Cookie("someName","someValue"));
Run Code Online (Sandbox Code Playgroud)
尝试这样的事情:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/default.html");
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(new Cookie("ConstoCookie", "Chocolate Flavour"));
Run Code Online (Sandbox Code Playgroud)
小智 6
WebRequest是一个没有CookieContainer属性的抽象类.此外,您不能使用Headers集合(未实现的异常),因此任何类似webRequest.Headers.Add("Cookie","...")的尝试都将失败.
抱歉,您没有机会在WebRequest中使用Cookie.
坚持使用HttpWebRequest并使用其Headers集合添加/编辑您喜欢的多个Cookie!
归档时间: |
|
查看次数: |
83910 次 |
最近记录: |