Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 4th, 2012  |  syntax: None  |  size: 1.72 KB  |  hits: 36  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Reuse Connection with HttpWebRequest in C#
  2. HttpWebRequest request = (HttpWebRequest)WebRequest.Create("my-server");
  3. request.Credentials = new NetworkCredential("user", "password");
  4.  
  5. request.GetResponse().Close();  // Works fine
  6.  
  7. // Now the request I want to make...
  8.  
  9. request = (HttpWebRequest)WebRequest.Create("my-server");
  10. request.Credentials = new NetworkCredential("user", "password");
  11.  
  12. request.Method = "post";
  13.  
  14. string postData = "param1=1&param2=2";
  15. byte[] data = new ASCIIEncoding().GetBytes(postData);
  16. request.ContentLength = data.Length;
  17. request.ContentType = "application/x-www-form-urlencoded";
  18.  
  19. using (Stream stream = request.GetRequestStream())
  20. {
  21.     stream.Write(data, 0, data.Length);
  22.     stream.Close();
  23.     request.GetResponse().Close();      // This line gets a 401 Not Authorized error.
  24. }
  25.        
  26. HttpWebRequest request = (HttpWebRequest)WebRequest.Create("my-server");
  27. request.Credentials = new NetworkCredential("user", "password");
  28.  
  29. var response = (HttpWebResponse)request.GetResponse();
  30.  
  31. var cookieContainer = new CookieContainer();
  32. foreach (Cookie cookie in response.Cookies)
  33. {
  34.     cookieContainer.Add(cookie);
  35. }
  36.  
  37. response.Close();
  38.  
  39. // Now the request I want to make...
  40.  
  41. request = (HttpWebRequest)WebRequest.Create("my-server");
  42. request.Credentials = new NetworkCredential("user", "password");
  43. request.CookieContainer = cookieContainer;
  44.  
  45. request.Method = "post";
  46.  
  47. string postData = "param1=1&param2=2";
  48. byte[] data = new ASCIIEncoding().GetBytes(postData);
  49. request.ContentLength = data.Length;
  50. request.ContentType = "application/x-www-form-urlencoded";
  51.  
  52. using (Stream stream = request.GetRequestStream())
  53. {
  54.     stream.Write(data, 0, data.Length);
  55.     request.GetResponse().Close();      // This line gets a 401 Not Authorized error.
  56. }