哪个库或内置功能可以让您使用缩短的网址,如bitly,fb.me,google的缩短等等...并在最快的时间内获得最终链接?
感谢
答案 0 :(得分:7)
主要是编程时间,我现在正在使用来自apache的httpclient,想知道它们是否是内置的任何替代方案
String location = "http://tinyurl.com/so-hints";
HttpURLConnection connection = (HttpURLConnection) new URL(location).openConnection();
connection.setInstanceFollowRedirects(false);
while (connection.getResponseCode() / 100 == 3) {
location = connection.getHeaderField("location");
connection = (HttpURLConnection) new URL(location).openConnection();
}
System.out.println(location); // http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx
答案 1 :(得分:2)
这不是一个真正的答案,但您基本上需要通过HTTP客户端调用缩短的URL,然后查看响应中302头的内容。然后将用户重定向到该URL。
(我想知道你为什么要这样做,只需将缩短的网址作为302重定向发送,让它们再次反弹)。
答案 2 :(得分:2)
我一直在寻找同样的,以及BalusC上面提出的建议。我在这里有一个修复,实际上是一个增强。
String location = "http://j.mp/mAag6Q";
HttpURLConnection connection = (HttpURLConnection) new URL(location).openConnection();
connection.setInstanceFollowRedirects(false);
while (connection.getResponseCode() / 100 == 3) {
location = connection.getHeaderField("location");
System.out.println(location);
connection = (HttpURLConnection) new URL(location).openConnection();
**connection.setInstanceFollowRedirects(false);**
}
基本上我所做的就是在循环中再次将连接的setInstanceFollowRedirects设置为false,这样它也可以处理多级重定向。