Descarga de archivos DownloadTo

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:

  1. onProgressChanged:(bytesCopied, totalBytes?)
    • bytesCopied:Cantidad de bytes ya descargados
    • totalBytes:Bytes totales del archivo, tipo anulable (long?)
      Si el servidor no devuelve la cabecera Content‑Length, totalBytes.HasValue == false. No se puede calcular el porcentaje de progreso, solo se pueden imprimir los bytes descargados.
  2. 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ónAPIMétodo principal
Solicitud GETHttp.Get(url)Consulta básica, descarga de archivo .DownloadTo()
POST FormularioHttp.Post(url).Form() pares clave‑valor de formulario
POST JSONHttp.Post(url).Body(cadena,tipoMime)
Subida de archivoHttp.Post(url).Upload() + NamedFileStream

Descarga de archivos DownloadTo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *