- Reuse Connection with HttpWebRequest in C#
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create("my-server");
- request.Credentials = new NetworkCredential("user", "password");
- request.GetResponse().Close(); // Works fine
- // Now the request I want to make...
- request = (HttpWebRequest)WebRequest.Create("my-server");
- request.Credentials = new NetworkCredential("user", "password");
- request.Method = "post";
- string postData = "param1=1¶m2=2";
- byte[] data = new ASCIIEncoding().GetBytes(postData);
- request.ContentLength = data.Length;
- request.ContentType = "application/x-www-form-urlencoded";
- using (Stream stream = request.GetRequestStream())
- {
- stream.Write(data, 0, data.Length);
- stream.Close();
- request.GetResponse().Close(); // This line gets a 401 Not Authorized error.
- }
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create("my-server");
- request.Credentials = new NetworkCredential("user", "password");
- var response = (HttpWebResponse)request.GetResponse();
- var cookieContainer = new CookieContainer();
- foreach (Cookie cookie in response.Cookies)
- {
- cookieContainer.Add(cookie);
- }
- response.Close();
- // Now the request I want to make...
- request = (HttpWebRequest)WebRequest.Create("my-server");
- request.Credentials = new NetworkCredential("user", "password");
- request.CookieContainer = cookieContainer;
- request.Method = "post";
- string postData = "param1=1¶m2=2";
- byte[] data = new ASCIIEncoding().GetBytes(postData);
- request.ContentLength = data.Length;
- request.ContentType = "application/x-www-form-urlencoded";
- using (Stream stream = request.GetRequestStream())
- {
- stream.Write(data, 0, data.Length);
- request.GetResponse().Close(); // This line gets a 401 Not Authorized error.
- }