How to add cookies to WebRequest?
.net, c#, unit-testing
Solution
Based on your comments, you might consider writing an extension method:
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;
}
Then you can have code like:
WebRequest webRequest = WebRequest.Create( uri );
webRequest.TryAddCookie(new Cookie("someName","someValue"));
Problem
I am trying to unit test some code, and I need to to replace this: ``` HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create( uri ); httpWebRequest.CookieContainer = new CookieContainer(); ``` with ``` WebRequest webRequest = WebRequest.Create( uri ); webRequest.CookieContainer = new CookieContainer(); ``` Basically, how do I get cookies into the request without using a HttpWebRequest?