Post Html
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();
}






