title: java urlconnection get the final redirected URL
body: <p>I have a url which redirects to another url.I want to be able to get the final redirected URL.My code:</p>
  
  <pre><code>    public class testURLConnection
      {
      public static void main(String[] args) throws MalformedURLException, IOException {
  
      HttpURLConnection con =(HttpURLConnection) new URL( "http://tinyurl.com/KindleWireless" ).openConnection();
  
      System.out.println( "orignal url: " + con.getURL() );
      con.connect();
  
  System.out.println( "connected url: " + con.getURL() );
  InputStream is = con.getInputStream();
  System.out.println( "redirected url: " + con.getURL() );
  is.close();
  </code></pre>
  
  <p>}
  }</p>
  
  <p>It always gives original url whereas the redirectURL is:<a href="https://rads.stackoverflow.com/amzn/click/com/B003FSUDM4" rel="noreferrer" rel="nofollow noreferrer">http://www.amazon.com/Kindle-Wireless-Reading-Display-Globally/dp/B003FSUDM4/ref=amb_link_353259562_2?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-10&amp;pf_rd_r=11EYKTN682A79T370AM3&amp;pf_rd_t=201&amp;pf_rd_p=1270985982&amp;pf_rd_i=B002Y27P3M</a>.</p>
  
  <p>How can i get this final redirected URL.</p>
  
  <p>Here is what i tried with looping till we get redirects.Still doesent fetch the desired url:</p>
  
  <pre><code>    public static String fetchRedirectURL(String url) throws IOException
      {
  HttpURLConnection con =(HttpURLConnection) new URL( url ).openConnection();
  //System.out.println( "orignal url: " + con.getURL() );
  con.setInstanceFollowRedirects(false);
  con.connect();
  
  
  InputStream is = con.getInputStream();
  if(con.getResponseCode()==301)
      return con.getHeaderField("Location");
  else return null;
      }
      public static void main(String[] args) throws MalformedURLException, IOException {
  String url="http://tinyurl.com/KindleWireless";
  String fetchedUrl=fetchRedirectURL(url);
  System.out.println("FetchedURL is:"+fetchedUrl);
  while(fetchedUrl!=null)
  {   url=fetchedUrl;
  System.out.println("The url is:"+url);
      fetchedUrl=fetchRedirectURL(url);
  
  
  }
  System.out.println(url);
  
      }
  </code></pre>