¿Alguien sabe cómo usar HttpClient
in .Net 4.5 con multipart/form-data
upload?
No pude encontrar ningún ejemplo en Internet.
¿Alguien sabe cómo usar HttpClient
in .Net 4.5 con multipart/form-data
upload?
No pude encontrar ningún ejemplo en Internet.
Respuestas:
mi resultado se ve así:
fuente
new MultipartFormDataContent(...)
contenía un carácter de límite no válido (tal vez el separador "/"). Sin errores, simplemente no hay archivos publicados en el servidor; en mi caso, Context.Request.Files.Count = 0 en el controlador API. Posiblemente solo sea unNancy
problema, pero sugiero usar algo como en suDateTime.Now.Ticks.ToString("x")
lugar.key
yfileName
acontent
( bilddatei y upload.jpg en este ejemplo).Funciona más o menos así (ejemplo usando un archivo de imagen / jpg):
(Puede hacer
requestContent.Add()
lo que quiera, eche un vistazo al descendiente HttpContent para ver los tipos disponibles para pasar)Cuando se complete, encontrará el contenido de respuesta dentro
HttpResponseMessage.Content
que puede consumirHttpContent.ReadAs*Async
.fuente
// here you can specify boundary if you need---^
:)async
en la primera línea yawait
en la línea anterior a la última son innecesarios.Este es un ejemplo de cómo publicar cadenas y secuencias de archivos con HTTPClient usando MultipartFormDataContent. La disposición de contenido y el tipo de contenido deben especificarse para cada contenido HTTP:
Aquí está mi ejemplo. Espero eso ayude:
fuente
MultipartFormDataContent
. Felicitaciones a usted señorContent-Type
yContent-Disposition
está bien, pero en Server 2008 R2 (IIS 7.5) no puedo encontrar archivos, es extraño. Entonces hago como la respuesta.Aquí hay otro ejemplo sobre cómo usar
HttpClient
para cargar un archivomultipart/form-data
.Carga un archivo en una API REST e incluye el archivo en sí (por ejemplo, un JPG) y parámetros de API adicionales. El archivo se carga directamente desde el disco local a través de
FileStream
.Vea aquí el ejemplo completo que incluye lógica específica de API adicional.
fuente
Prueba esto, está funcionando para mí.
fuente
TestServer.CreatClient()
escenario de .NET Core de una prueba de integración para una carga de datos + archivo.Aquí hay una muestra completa que funcionó para mí. El
boundary
valor en la petición se añade automáticamente por NET.fuente
Ejemplo con preloader Dotnet 3.0 Core
fuente
fuente
Estoy agregando un fragmento de código que muestra cómo publicar un archivo en una API que ha sido expuesta sobre DELETE http verb. Este no es un caso común para cargar un archivo con el verbo http DELETE pero está permitido. Asumí la autenticación de Windows NTLM para autorizar la llamada.
El problema que uno podría enfrentar es que todas las sobrecargas del
HttpClient.DeleteAsync
método no tienen parámetros paraHttpContent
la forma en que lo incorporamos alPostAsync
método.Necesita los siguientes espacios de nombres en la parte superior de su archivo C #:
PD: Perdón por usar bloques (patrón IDisposable) en mi código. Desafortunadamente, la sintaxis del uso de la construcción de C # no admite la inicialización de múltiples variables en una sola declaración.
fuente
fuente