Thread LWP::UserAgent und header refresh
(8 answers)
Opened by bianca at 2021-09-22 09:43
Guten Morgen!
Eine Frage zum LWP::UserAgent: und zwar möchte ich die Datei http://database.clamav.net/daily.cvd abrufen. Mit dem Browser ist das kein Problem. LWP::UserAgent hingegen scheitert mit Code 503. Hier mein Testscript: 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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 #!/usr/bin/perl use strict; use warnings; use 5.010; my $env = { }; my $load_ClamAV = sub { my ($env,$her_hin) = @_; delete $her_hin->{fehler} if defined $her_hin->{fehler}; # zurück setzen my %conf_local = ( abrufe => [ { url => 'http://database.clamav.net/daily.cvd', }, ], ); require LWP::UserAgent; require HTTP::CookieJar::LWP; my $jar = HTTP::CookieJar::LWP->new; my $ua = LWP::UserAgent->new( agent => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36', cookie_jar => $jar, protocols_allowed => ['http','https'], timeout => 10, ); foreach my $ref (@{$conf_local{abrufe}}) { my $response = $ua->get($ref->{url}); if ($response->is_success) { say __LINE__; print $response->decoded_content; } else { say __LINE__; say $response->status_line; say $response->headers()->as_string; say $response->header('content-type'); $her_hin->{fehler} = "Abruf der URL '" .$ref->{url} ."' ist gescheitert mit HTTP Status-Code " .$response->status_line ; last; } } return if defined $her_hin->{fehler}; }; ############################################################################### my %hin_her = ( ); $load_ClamAV->($env,\%hin_her); if (defined $hin_her{fehler}) { say "FEHLER!\n$hin_her{fehler}"; } Ergebnis: Quote Wie man sieht ist da so ein Refresh: 3 im Header. Vermutlich liegt es daran? Wie kann ich in diesem Fall das Verhalten von LWP::UserAgent einem Browser nachempfinden? Danke 10 print "Hallo"
20 goto 10 |