http://www.perlmonks.org?node_id=638285

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 http://site.com/a, 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 (Patriarch) 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:

    $response->request->uri;