Home
Manage Your Code
Snippet: Post Html (C#)
Title: Post Html Language: C#
Description: Post html to a URL. Views: 242
Author: Dan Kengott Date Added: 6/19/2007
Copy Code  
1		public static string Post(Uri uri, Encoding encoding, string inputMimeType, NetworkCredential credentials, string input, int timeout)
2		{
3			return Post(uri, encoding, inputMimeType, credentials, input, timeout, null);
4		}
5
6		public static string PostAs(string sessionID, Uri uri, Encoding encoding, string inputMimeType, NetworkCredential credentials, string input, int timeout)
7		{
8			CookieCollection requestCookies = new CookieCollection();
9			requestCookies.Add(new Cookie(SessionManager.ASP_NET_SESSION_COOKIE, sessionID, "/", uri.Host));
10			return Post(uri, encoding, inputMimeType, credentials, input, timeout, requestCookies);
11		}
12
13		private static string Post(Uri uri, Encoding encoding, string inputMimeType, NetworkCredential credentials, string input, int timeout, CookieCollection requestCookies)
14		{
15			HttpWebRequest request;
16			HttpWebResponse response;
17			StringBuilder sb = new StringBuilder();
18			request = (HttpWebRequest)WebRequest.Create(uri);
19			request.Method = Form.POST;
20			request.ContentType = inputMimeType;
21			if (timeout == Timeout.Infinite || timeout > 0)
22			{
23				request.Timeout = timeout;
24			}
25			if (credentials != null)
26			{
27				CredentialCache credentialCache = new CredentialCache();
28				credentialCache.Add(uri, "Basic", credentials);
29				credentialCache.Add(uri, "NTLM", credentials);
30				credentialCache.Add(uri, "Digest", credentials);
31				request.Credentials = credentialCache;
32			}
33			if (requestCookies != null)
34			{
35				// add specified cookies to the new request
36				if (request.CookieContainer == null)
37				{
38					request.CookieContainer = new CookieContainer();
39				}
40				request.CookieContainer.Add(requestCookies);
41			}
42			byte[] inputBytes;
43			if (string.IsNullOrEmpty(input))
44			{
45				inputBytes = new byte[0];
46			}
47			else
48			{
49				inputBytes = encoding.GetBytes(input);
50			}
51			request.ContentLength = inputBytes.Length;
52			Stream requestStream = request.GetRequestStream();
53			requestStream.Write(inputBytes, 0, inputBytes.Length);
54			response = (HttpWebResponse) request.GetResponse();
55			requestStream.Close();
56			Stream responseStream = response.GetResponseStream();
57			StringWriter sw = new StringWriter(sb);
58			StreamReader sr = new StreamReader(responseStream, encoding);
59			Char[] read = new Char[256];
60			int count = sr.Read(read, 0, 256);
61			while (count > 0)
62			{
63				sw.Write(read, 0, count);
64				count = sr.Read(read, 0, 256);
65			}
66			return sb.ToString();
67		}
68