Post Html

Giugno 19th, 2007

Description: Post html to a URL.

Link: http://www.codekeep.net/snippets/0ef118a8-c7ff-4a7b-b791-3532322229e0.aspx

		public static string Post(Uri uri, Encoding encoding, string inputMimeType, NetworkCredential credentials, string input, int timeout)
		{
			return Post(uri, encoding, inputMimeType, credentials, input, timeout, null);
		}

		public static string PostAs(string sessionID, Uri uri, Encoding encoding, string inputMimeType, NetworkCredential credentials, string input, int timeout)
		{
			CookieCollection requestCookies = new CookieCollection();
			requestCookies.Add(new Cookie(SessionManager.ASP_NET_SESSION_COOKIE, sessionID, "/", uri.Host));
			return Post(uri, encoding, inputMimeType, credentials, input, timeout, requestCookies);
		}

		private static string Post(Uri uri, Encoding encoding, string inputMimeType, NetworkCredential credentials, string input, int timeout, CookieCollection requestCookies)
		{
			HttpWebRequest request;
			HttpWebResponse response;
			StringBuilder sb = new StringBuilder();
			request = (HttpWebRequest)WebRequest.Create(uri);
			request.Method = Form.POST;
			request.ContentType = inputMimeType;
			if (timeout == Timeout.Infinite || timeout > 0)
			{
				request.Timeout = timeout;
			}
			if (credentials != null)
			{
				CredentialCache credentialCache = new CredentialCache();
				credentialCache.Add(uri, "Basic", credentials);
				credentialCache.Add(uri, "NTLM", credentials);
				credentialCache.Add(uri, "Digest", credentials);
				request.Credentials = credentialCache;
			}
			if (requestCookies != null)
			{
				// add specified cookies to the new request
				if (request.CookieContainer == null)
				{
					request.CookieContainer = new CookieContainer();
				}
				request.CookieContainer.Add(requestCookies);
			}
			byte[] inputBytes;
			if (string.IsNullOrEmpty(input))
			{
				inputBytes = new byte[0];
			}
			else
			{
				inputBytes = encoding.GetBytes(input);
			}
			request.ContentLength = inputBytes.Length;
			Stream requestStream = request.GetRequestStream();
			requestStream.Write(inputBytes, 0, inputBytes.Length);
			response = (HttpWebResponse) request.GetResponse();
			requestStream.Close();
			Stream responseStream = response.GetResponseStream();
			StringWriter sw = new StringWriter(sb);
			StreamReader sr = new StreamReader(responseStream, encoding);
			Char[] read = new Char[256];
			int count = sr.Read(read, 0, 256);
			while (count > 0)
			{
				sw.Write(read, 0, count);
				count = sr.Read(read, 0, 256);
			}
			return sb.ToString();
		}

  • .NET
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.