code_junkie

How can I determine if a URL redirects?

Nov 12th, 2011
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. use LWP::UserAgent;
  2. my $ua = LWP::UserAgent->new;
  3.  
  4. my $request = HTTP::Request->new( GET => 'http://google.com/' );
  5. my $response = $ua->request($request);
  6. if ( $response->is_success and $response->previous ) {
  7. print $request->url, ' redirected to ', $response->request->uri, "n";
  8. }
  9.  
  10. $ telnet www.google.com 80
  11. HEAD / HTTP/1.1
  12. HOST: www.google.com
  13.  
  14.  
  15. HTTP/1.1 302 Found
  16. Location: http://www.google.it/
  17. Cache-Control: private
  18. Content-Type: text/html; charset=UTF-8
  19. Set-Cookie: ##############################
  20. Date: Thu, 30 Oct 2008 20:03:36 GMT
  21. Server: ####
  22. Content-Length: 218
  23.  
  24. URL url = new URL ('http://google.com')
  25. HttpURLConnection conn = url.openConnection()
  26. conn.followRedirects = false
  27. conn.requestMethod = 'HEAD'
  28. println conn.responseCode
  29. // Not ideal - should check response code too
  30. if (conn.headerFields.'Location') {
  31. println conn.headerFields.'Location'
  32. }
  33.  
  34. 301
  35. ["http://www.google.com/"]
  36.  
  37. use LWP::UserAgent;
  38. my $ua = LWP::UserAgent->new;
  39.  
  40. my $request = HTTP::Request->new( GET => 'http://google.com/' );
  41. my $response = $ua->request($request);
  42. if ( $response->is_redirect ) {
  43. print $request->url . " redirected to location " . $response->header('Location') . "n";
  44. }
Add Comment
Please, Sign In to add comment