老张
资深系统架构师
在实际开发中,经常需要处理短链接还原和URL参数提取的需求。本文分享一个完整的Java实现方案。
短链接服务(如bit.ly、t.cn等)通过HTTP重定向将短链接转换为原始URL。我们需要:
// UrlUtils.java
public class UrlUtils {
public static String expandShortUrl(String shortUrl) {
HttpURLConnection connection = null;
try {
URL url = new URL(shortUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setInstanceFollowRedirects(false);
String location = connection.getHeaderField("Location");
return location != null ? location : shortUrl;
} finally {
if (connection != null) connection.disconnect();
}
}
} public static Map<String, String> extractParams(String url) {
Map<String, String> params = new HashMap<>();
URL urlObj = new URL(url);
String query = urlObj.getQuery();
if (query != null) {
String[] pairs = query.split("&");
for (String pair : pairs) {
String[] keyValue = pair.split("=");
if (keyValue.length == 2) {
params.put(keyValue[0], keyValue[1]);
}
}
}
return params;
} String shortUrl = "https://bit.ly/xxxxx";
String fullUrl = UrlUtils.expandShortUrl(shortUrl);
Map<String, String> params = UrlUtils.extractParams(fullUrl);
System.out.println("原始URL: " + fullUrl);
System.out.println("参数: " + params); 通过HttpURLConnection和URL类,我们可以轻松实现短链接还原和参数提取功能。这个工具类在实际项目中非常实用。