Página 1 de 1

Continuar una descarga pausada

NotaPublicado: 2007-12-09 10:47 @491
por creating021
Quiero programar una aplicación que descarga archivos vía HTTP.

¿Cómo podría continuar una descarga si he parado de descargar?

En otras palabras... cómo hace Opera ( por ejemplo ) para continuar una descarga ( donde iba ) sin tener que reiniciar la descarga del archivo.

¿ Algún header de HTTP ?

Gracias.

PD: uso Socket pero cualquier módulo es útil ( en LWP no ví nada de esto ).

NotaPublicado: 2007-12-09 17:02 @751
por explorer
Un cliente puede notificar al servidor que desea bajar no todo el archivo sino solo una parte. Eso se lo indica en la cabecera HTTP con la entrada Range (sección 14, apartado 35, de la definición del protocolo HTTP/1.1).

NotaPublicado: 2007-12-20 12:59 @582
por creating021
Perfecto.

¡Muchas gracias!

NotaPublicado: 2007-12-26 15:50 @702
por Zeokat
¿Algún ejemplo sencillo de cómo hacer esto con el módulo LWP?

Parece que hay que toquetear los headers.

Gracias de antemano.

NotaPublicado: 2007-12-26 16:45 @739
por explorer
En el foro Básico hemos hablado de eso hace poco. Mira el hilo que se llama "Programa que se conecte a una web y baje datos".

NotaPublicado: 2007-12-26 17:25 @767
por Zeokat
Si, si... ya le eché un ojo... pero no vi por ninguna parte los rangos de bytes... y poco me solucionó. A ver si encuentro algo por ahí. :)

NotaPublicado: 2007-12-26 18:30 @812
por creating021
Al final, con LWP no es tan dificil...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use LWP::UserAgent;
use HTTP::Request;
my $req = HTTP::Request->new(GET => 'http://www.example.com/example.tar.bz2');
$req->header(Range => 'bytes=0-511');
my $ua = LWP::UserAgent->new();
my $respuesta = $ua->request( $req );

if ( $respuesta->is_success ) {
    print $respuesta->content;
}
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Eso debe de tomar los primero 512 bytes :)

NotaPublicado: 2007-12-26 19:05 @837
por Zeokat
Sí, sí, al final preguntando por ahí ya me aclararon cómo hacerlo. ;)

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$ua->default_headers->push_header(Range => "bytes=-200");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4