JumpKick.HttpLib — Carga de archivos Upload
Descripción
La carga de archivos se realiza mediante Http.Post() + .Upload(), usando el formato multipart/form‑data para enviar archivos locales ;
Clase principal:NamedFileStream(nombre campo formulario, nombre archivo, tipo MIME, flujo de archivo)
La dirección de ejemplo oficial
https://jthorne.co.uk/httplibno sirve para pruebas reales. Usa esta dirección alternativa:https://httpbin.org/post
Constructor
new NamedFileStream(
string fieldName, // Clave del formulario que recibe el backend
string fileName, // Nombre que se envía al servidor
string contentType, // Tipo MIME del archivo
Stream stream // Flujo de lectura File.OpenRead(ruta del archivo)
)Lenguaje del código: JavaScript (javascript)
Carga de un solo archivo
using System;
using System.IO;
using JumpKick.HttpLib;
class Program
{
static void Main(string[] args)
{
Http.Post("https://httpbin.org/post")
.Upload(files: new[]
{
new NamedFileStream(
"myfile",
"photo.png",
"image/png",
File.OpenRead(@"C:\Users\Jack\Pictures\clipboard.png")
)
})
.OnSuccess(result =>
{
Console.WriteLine("==== Carga completada con éxito ====");
Console.WriteLine(result);
})
.OnFail(webexception =>
{
Console.WriteLine("==== Error en la carga ====");
Console.WriteLine(webexception.Message);
})
.Go();
Console.ReadKey();
}
}Lenguaje del código: JavaScript (javascript)
Seguimiento de progreso onProgressChanged
Muestra el porcentaje de carga en tiempo real
using System;
using System.IO;
using JumpKick.HttpLib;
class Program
{
static void Main(string[] args)
{
Http.Post("https://httpbin.org/post")
.Upload(
files: new[]
{
new NamedFileStream(
"myfile",
"photo.png",
"image/png",
File.OpenRead(@"C:\Users\86186\Pictures\clipboard.png")
)
},
onProgressChanged: (bytesSent, totalBytes) =>
{
double percent = (double)bytesSent / totalBytes * 100;
Console.WriteLine($"Subiendo archivo: {percent:F2} %");
}
)
.OnSuccess(result =>
{
Console.WriteLine("\n==== Carga finalizada ====");
Console.WriteLine(result);
})
.OnFail(webexception =>
{
Console.WriteLine("==== Error en la carga ====");
Console.WriteLine(webexception.Message);
})
.Go();
Console.ReadKey();
}
}Lenguaje del código: JavaScript (javascript)
Carga de varios archivos a la vez
Añade múltiples instancias de NamedFileStream dentro del array
using System;
using System.IO;
using JumpKick.HttpLib;
class Program
{
static void Main(string[] args)
{
Http.Post("https://httpbin.org/post")
.Upload(files: new[]
{
new NamedFileStream("file1", "1.png", "image/png", File.OpenRead(@"D:\1.png")),
new NamedFileStream("file2", "2.jpg", "image/jpeg", File.OpenRead(@"D:\2.jpg"))
})
.OnSuccess(result =>
{
Console.WriteLine("==== Carga múltiple exitosa ====");
Console.WriteLine(result);
})
.OnFail(webexception =>
{
Console.WriteLine("==== Error en la carga ====");
Console.WriteLine(webexception.Message);
})
.Go();
Console.ReadKey();
}
}Lenguaje del código: JavaScript (javascript)
Caso de error
Usa una ruta de archivo inexistente para provocar una excepción y comprobar la captura con OnFail
using System;
using System.IO;
using JumpKick.HttpLib;
class Program
{
static void Main(string[] args)
{
Http.Post("https://httpbin.org/post")
.Upload(files: new[]
{
new NamedFileStream(
"myfile",
"notfound.png",
"image/png",
File.OpenRead(@"D:\archivo_inexistente.png") // ruta incorrecta
)
})
.OnSuccess(result =>
{
Console.WriteLine("==== Carga completada con éxito ====");
Console.WriteLine(result);
})
.OnFail(webexception =>
{
Console.WriteLine("==== Excepción capturada (archivo no encontrado) ====");
Console.WriteLine(webexception.Message);
})
.Go();
Console.ReadKey();
}
}Lenguaje del código: JavaScript (javascript)
Carga de archivos Upload
Previous: Peticiones POST