Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

How to get real address with LWP and redirects?

by ivanatora (Sexton)
on Sep 11, 2007 at 12:40 UTC ( #638285=perlquestion: print w/replies, xml ) Need Help??
ivanatora has asked for the wisdom of the Perl Monks concerning the following question:

I use LWP::UserAgent to get some site contents and go through some links. The question is sometimes links are, which redirects to another page (mod_rewrite for sure) and LWP gets its contents perfectly, but I want to know the new location address. Can I do it with LWP?
  • Comment on How to get real address with LWP and redirects?

Replies are listed 'Best First'.
Re: How to get real address with LWP and redirects?
by ikegami (Pope) on Sep 11, 2007 at 13:35 UTC

    To see the final uri:

    my $response = $ua->...; print($response->request()->uri(), "\n");

    Or to see all the redirections:

    my $response = $ua->...; while ($response) { print($response->request()->uri(), "\n"); $response = $response->previous(); }
Re: How to get real address with LWP and redirects?
by szbalint (Friar) on Sep 11, 2007 at 13:35 UTC

    Sure. It's a bit tricky to wrap your head around it, because the HTTP::Response object you received contains the HTTP::Request object that was created when LWP encountered the (last) redirect. The request object contains the url you've been redirected to. It might be confusing to see that the request object can change, but it does so just as an added note, people shouldn't rely on it for example to determine the original url.

    Anyway, you can access the url something like this:


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://638285]
Approved by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2018-06-17 22:37 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (107 votes). Check out past polls.