Enviar un archivo a través de HTTP POST con C #

He estado buscando y leyendo alrededor de eso y no pude encontrar nada realmente útil.

Estoy escribiendo una pequeña aplicación C # win que permite al usuario enviar archivos a un servidor web, no por FTP, sino por HTTP utilizando POST. Piense en ello como un formulario web pero ejecutándose en una aplicación de Windows.

Tengo mi objeto HttpWebRequest creado usando algo como esto

HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest 

y también establecer elMethod, ContentType yContentLength propiedades Pero eso es lo lejos que puedo ir.

Este es mi código:

HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.KeepAlive = false;
req.Method = "POST";
req.Credentials = new NetworkCredential(user.UserName, user.UserPassword);
req.PreAuthenticate = true;
req.ContentType = file.ContentType;
req.ContentLength = file.Length;
HttpWebResponse response = null;

try
{
    response = req.GetResponse() as HttpWebResponse;
}
catch (Exception e) 
{
}

Entonces mi pregunta es, básicamente, cómo puedo enviar un archivo (archivo de texto, imagen, audio, etc.) con C # a través de HTTP POST.

¡Gracias!

Respuestas a la pregunta(7)

Su respuesta a la pregunta