JumpKick.HttpLib — Descarga de archivos DownloadTo
Descripción
Usa .DownloadTo(rutaDeGuardado, ...) para descargar y guardar recursos de red directamente en disco local, normalmente junto con Http.Get().
Parámetros de retrollamada:
onProgressChanged:(bytesCopied, totalBytes?)bytesCopied:Cantidad de bytes ya descargadostotalBytes:Bytes totales del archivo, tipo anulable (long?)
Si el servidor no devuelve la cabeceraContent‑Length,totalBytes.HasValue == false. No se puede calcular el porcentaje de progreso, solo se pueden imprimir los bytes descargados.
onSuccess:(headers)
Retrollamada al finalizar descarga, permite leer las cabeceras de respuesta.
Ejemplos
Con retrollamada de progreso y finalización
using System;
using JumpKick.HttpLib;
class Program
{
static void Main(string[] args)
{
string url = "https://codelexample.test/file.zip";
string savePath = @"E:\httplib.zip";
Http.Get(url)
.DownloadTo(
savePath,
onProgressChanged: (bytesCopied, totalBytes) =>
{
if (totalBytes.HasValue)
{
// *1.0d fuerza cálculo de coma flotante para evitar división entera igual a cero
double progress = (bytesCopied / totalBytes.Value * 1.0d) * 100;
Console.WriteLine($"Progreso descarga:{progress:F2} %");
}
Console.WriteLine($"Bytes descargados:{bytesCopied} bytes");
},
onSuccess: (headers) =>
{
Console.WriteLine("\nDescarga de archivo completada");
}
)
.OnFail(ex =>
{
Console.WriteLine("Error de descarga:" + ex.Message);
})
.Go();
Console.ReadKey();
}
}Lenguaje del código: JavaScript (javascript)
Ejemplo‑Descarga mínima
Sin seguimiento de progreso
using System;
using JumpKick.HttpLib;
class Program
{
static void Main(string[] args)
{
Http.Get("https://httpbin.org/image/png")
.DownloadTo(@"E:\test.png",
onSuccess: headers =>
{
Console.WriteLine("Descarga finalizada");
})
.OnFail(ex => Console.WriteLine(ex.Message))
.Go();
Console.ReadKey();
}
}Lenguaje del código: JavaScript (javascript)
Prueba de excepción
Indica dirección de recurso inexistente para capturar error 404
using System;
using JumpKick.HttpLib;
class Program
{
static void Main(string[] args)
{
// Enlace inválido, genera 404
Http.Get("https://httpbin.org/notfoundfile")
.DownloadTo(@"E:\error.png",
onProgressChanged: (bytesCopied, totalBytes) =>
{
Console.WriteLine($"Descargado:{bytesCopied} bytes");
},
onSuccess: headers =>
{
Console.WriteLine("Descarga finalizada");
})
.OnFail(ex =>
{
Console.WriteLine("Excepción capturada:" + ex.Message);
})
.Go();
Console.ReadKey();
}
}Lenguaje del código: JavaScript (javascript)
Resumen
| Función | API | Método principal |
|---|---|---|
| Solicitud GET | Http.Get(url) | Consulta básica, descarga de archivo .DownloadTo() |
| POST Formulario | Http.Post(url) | .Form() pares clave‑valor de formulario |
| POST JSON | Http.Post(url) | .Body(cadena,tipoMime) |
| Subida de archivo | Http.Post(url) | .Upload() + NamedFileStream |
Descarga de archivos DownloadTo
Previous: Carga de archivos Upload