Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
521 views
in Technique[技术] by (71.8m points)

java - Jsoup get redirected URL

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 response object also parsed it to get the document.

Response response = Jsoup.connect("http://t.co/i5dE1K4vSs")
                .followRedirects(true) //to follow redirects
                .execute();

Now, considering a single redirect, where to get the final url from? Any method or strategy to achieve this?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...