短链接恢复
用 Java 恢复短链
短链接在工作中经常会用到,但是需要从短链接恢复长链接的场景还是很少的。如果将短链接输入浏览器中地址栏中会自动重定向到原始链接。既然浏览器能够做到,用 Java 程序也能做到。
如果能确定只重定向一次,那么可以使用下面的方法来恢复短链接:
public static String restoreShortUrl(String shortUrl) throws IOException {
URL url = new URL(shortUrl);
HttpURLConnection connection = null;
try {
connection = (HttpURLConnection) url.openConnection();
// Disable automatic redirect
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
return connection.getHeaderField("Location");
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
restoreShortUrl 方法接收一个短链接返回短链接的原始链接。该实现能满足绝大部分场景,而且效率也是最高的。正常情况下重定向只会发生一次,但是保不齐重定向确实有可能发生多次,如果非要考虑这种情况,可以使用下面的方法
public static String restoreShortUrl(String shortUrl) throws IOException {
URL url = new URL(shortUrl);
HttpURLConnection connection = null;
try {
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.getHeaderFields();
return connection.getURL().toExternalForm();
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
如果第一种方法能解决,不推荐这种方法。
注:restoreShortUrl 设置了超时时间,如果不合适,可以根据实际情况修改超时时间。最后附上 imports
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
有问题吗?点此反馈!
温馨提示:反馈需要登录