Thread LWP URL Abfragen, Weiterleitung ermitteln (5 answers)
Opened by Franz at 2007-03-09 13:09

GwenDragon
 2007-03-09 15:56
#9733 #9733
User since
2005-01-17
14757 Artikel
Admin1
[Homepage]
user image
Die Weiterleitung macht ja der Server. Das kannst du nicht testen.
Allerdings kannst du bei LWP Weiterleitungen verbieten.

Ich denke, das geht so:
requests_redirectable = [];
oder die Redirects auf 0 setzen:
max_redirect =0;

Hoffe ich.
//EDIT: Ja. Es geht

Code: (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
use strict;
use warnings;

use LWP::UserAgent;
use HTTP::Request;

my $url='http://del.icio.us/url/check?url=http://www.testing.invalid';
my $ua = LWP::UserAgent->new( max_redirect => 0 );

my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request);

# check the outcome
 if ($response->is_success) {
    print $response->content;
 }
 else {
    # Testausgabe
    #print "Error: " . $response->status_line . "\n";
    #print "       " . print $response->header('Location') , "\n";
   
    # Umleitung ist z. B. Statuscode 301, 302, 303, 307
    my ($retsc) = $response->status_line =~ /^(\d{3})/;
    for my $sc (301,302,303,307) {
        print 'Umleitung -> ', $response->header('Location'), "\n" if ($retsc == $sc)
   }
 }


Allerdings findest du so nur die erste Weiterleitung, denke ich. Wenn der Server weitere Weiterleitungen hat, denn du willst ja wohl die letze finden, dann musst du wieder die Weiterleitung in ein GET einspeisen.\n\n

<!--EDIT|GwenDragon|1173449782-->

View full thread LWP URL Abfragen, Weiterleitung ermitteln