He estado buscando y leyendo sobre 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 usando POST. Piense en ello como un formulario web pero que se ejecuta 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 establezca las propiedades Method
, ContentType
y ContentLength
. Pero eso es lo lejos que puedo llegar.
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 fie (archivo de texto, imagen, audio, etc.) con C # a través de HTTP POST.
¡Gracias!
c#
http
post
system.net
Gabitoju
fuente
fuente
Respuestas:
Usando .NET 4.5 (o .NET 4.0 agregando el paquete Microsoft.Net.Http de NuGet) hay una manera más fácil de simular solicitudes de formulario. Aquí hay un ejemplo:
fuente
form.Add
es opcional y solo útil para archivos.Para enviar solo el archivo sin procesar :
Si desea emular un formulario de navegador con un
<input type="file"/>
, entonces eso es más difícil. Consulte esta respuesta para obtener una respuesta de datos de formulario / varias partes.fuente
http://www.testproject.com/SavedFiles
- tenga en cuenta el//
Para mí,
client.UploadFile
todavía envolví el contenido en una solicitud de varias partes, así que tuve que hacerlo así:fuente
Tuve el mismo problema y este siguiente código respondió perfectamente a este problema:
fuente
Necesita escribir su archivo en la secuencia de solicitud:
fuente
Para publicar archivos a partir de matrices de bytes:
fuente
fuente
Usando .NET 4.5 tratando de realizar la carga de archivos POST. Probé la mayoría de los métodos anteriores pero fue en vano. Encontré la solución aquí https://www.c-sharpcorner.com/article/upload-any-file-using-http-post-multipart-form-data
Pero no estoy interesado, ya que no entiendo por qué todavía tenemos que lidiar con una programación de tan bajo nivel en estos usos comunes (debería manejarse bien con el marco)
fuente