Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add cookies to WebRequest?

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?

like image 703
O.O Avatar asked Jun 22 '12 21:06

O.O


1 Answers

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")); 
like image 171
dlev Avatar answered Sep 30 '22 20:09

dlev