JumpKick.HttpLib — Download de ficheiros DownloadTo
Explicação
Utilize .DownloadTo(caminhoDeGuardar, ...) para descarregar e guardar recursos da rede diretamente no disco local, normalmente usado em conjunto com Http.Get().
Parâmetros de callback:
onProgressChanged:(bytesCopied, totalBytes?)bytesCopied:Número de bytes já descarregadostotalBytes:Total de bytes do ficheiro, tipo anulável (long?)
Se o servidor não devolver o cabeçalho de respostaContent‑Length,totalBytes.HasValue == false. Não é possível calcular a percentagem de descarregamento, apenas se conseguem mostrar os bytes já recebidos.
onSuccess:(headers)
Callback executado quando o descarregamento termina, permite aceder aos dados dos cabeçalhos de resposta.
Exemplos
Com callback de progresso e conclusão
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 força cálculo de vírgula flutuante para evitar divisão inteira igual a zero
double progress = (bytesCopied / totalBytes.Value * 1.0d) * 100;
Console.WriteLine($"Progresso do descarregamento:{progress:F2} %");
}
Console.WriteLine($"Bytes já descarregados:{bytesCopied} bytes");
},
onSuccess: (headers) =>
{
Console.WriteLine("\nDescarregamento do ficheiro concluído");
}
)
.OnFail(ex =>
{
Console.WriteLine("Erro no descarregamento:" + ex.Message);
})
.Go();
Console.ReadKey();
}
}Code language: JavaScript (javascript)
Exemplo‑Descarregamento mínimo
Sem acompanhamento de progresso
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("Descarregamento terminado");
})
.OnFail(ex => Console.WriteLine(ex.Message))
.Go();
Console.ReadKey();
}
}Code language: JavaScript (javascript)
Teste de exceções
Indique um endereço de recurso inexistente para capturar o erro 404
using System;
using JumpKick.HttpLib;
class Program
{
static void Main(string[] args)
{
// Ligação inválida, provoca erro 404
Http.Get("https://httpbin.org/notfoundfile")
.DownloadTo(@"E:\error.png",
onProgressChanged: (bytesCopied, totalBytes) =>
{
Console.WriteLine($"Já descarregado:{bytesCopied} bytes");
},
onSuccess: headers =>
{
Console.WriteLine("Descarregamento terminado");
})
.OnFail(ex =>
{
Console.WriteLine("Exceção capturada:" + ex.Message);
})
.Go();
Console.ReadKey();
}
}Code language: JavaScript (javascript)
Resumo
| Funcionalidade | API | Método principal |
|---|---|---|
| Pedido GET | Http.Get(url) | Consultas básicas, descarregamento de ficheiros .DownloadTo() |
| POST de formulário | Http.Post(url) | .Form() pares chave‑valor do formulário |
| POST JSON | Http.Post(url) | .Body(cadeiaDeCaracteres,tipoDeMultimédia) |
| Envio de ficheiro | Http.Post(url) | .Upload() + NamedFileStream |
Descarregamento de ficheiros DownloadTo
Previous: Upload de arquivos