Jsoup get redirected URL

后端 未结 2 568
情书的邮戳
情书的邮戳 2020-12-16 01:03

I\'m trying to fetch the actual(redirected) url from the one provided by a url shortener.

Let\'s take twitter url shortener for example. I\'m able to get the respons

相关标签:
2条回答
  • 2020-12-16 01:36

    The Response object has a url() method which should give you the final url. So you could do like

    String url = "http://t.co/i5dE1K4vSs";
    Response response = Jsoup.connect(url).followRedirects(true).execute();
    System.out.println(response.url())
    

    If you want o get the intermediate redirects you should turn follow redirect off and then check for header "location". Eg

    String url = "http://t.co/i5dE1K4vSs";
    Response response = Jsoup.connect(url).followRedirects(false).execute();
    System.out.println(response.header("location"));
    

    If it has multiple redirect you need to recurssively call the urls.

    0 讨论(0)
  • 2020-12-16 01:44

    Code:

    String originalUrl = Jsoup.connect("http://t.co/i5dE1K4vSs")
                            .followRedirects(true) //to follow redirects
                            .execute().url().toExternalForm();
    System.out.println(originalUrl);
    

    Output:

    http://ibnlive.in.com/news/messi-considered-move-to-arsenal/487799-5-21.html
    

    Explanation:

    As the Connection.Response has Connection.Base as superinterface, you can just use the #url() method of it (and then use the URL object as you want.

    0 讨论(0)
提交回复
热议问题