Thread Warten bis download fertig ? (7 answers)
Opened by Monk at 2009-03-27 14:04

topeg
 2009-03-28 10:42
#119897 #119897
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Es gibt so viele Möglichkeiten...

Möglichkeit 0:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use strict;
use warnings;
use LWP::Simple;

my $url='http://www.test.de/';
my $body = get($url);

die "Download Fehlgeschlagen\n" unless defined $body;

print $body;


Möglichkeit 1:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl

use strict;
use warnings;
use HTTP::Lite;

my $url='http://www.test.de/';
my $http = HTTP::Lite->new();
my $req = $http->request($url) or die "konnte die URL $url nicht erreichen ($!)\n";
die "Download Fehlgeschlagen ($req): ".$http->status_message()."\n" if $req ne "200";

my $body = $http->body();
print $body;


Möglichkeit2:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict;
use warnings;
use LWP::UserAgent;

my $url='http://www.test.de/';

my $http = LWP::UserAgent->new();
my $ret=$http->get($url);
die "Download Fehlgeschlagen (".$ret->code().")".$ret->message()."\n" if($ret->is_error());

my $body=$ret->content();
print $body;


Möglichkeit 3:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;
use warnings;
use HTTP::GHTTP;

my $url='http://www.test.de/';

my $ret = HTTP::GHTTP->new();
$ret->set_uri($url);
$ret->process_request();
my ($stat,$message)=$ret->get_status();
die "Download Fehlgeschlagen ($stat): $message\n" if($stat != 200);

my $body=$ret->get_body();
print $body;


Möglichkeit 4 (für puristen):
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl

use strict;
use warnings;
use Net::Telnet();

my $server='www.test.de';
my $site='/';

my $http=Net::Telnet->new(Timeout => 30);
$http-> open(Host => $server, Port => 80) or die "konnte Verbindung zu $server nicht herstellen";

my $get_text="GET $site HTTP/1.1\n"
             ."Accept: image/gif, image/jpeg, image/png, */*\n"
             ."Accept-Language: de\n"
             ."User-Agent: Test1.0 (Telnet)\n"
             ."Host: $server\n"
             ."Connection: close\n\n";# "Keep-Alive" if there is more
$http -> print($get_text);
(my $header)= $http -> waitfor('/\n\n/s');
(my $body) = $http -> waitfor('/\z/s');
$http-> close();

print $body;


Die Variante direkt über ein Socket zeige ich mal nicht. :-)

View full thread Warten bis download fertig ?