我的公司不使用 Apache,所以我们编写了自己的套接字代码。在下文中,HTMLDoc 是我的服务器响应版本。如果原始 URL 给出 301 响应代码,我正在尝试获取浏览器将重定向到的 URL:
static public void main(String args[]) throws Exception
{
String spec = "http://some_url_with_301_redirect.com";
URL my_url = new URL(spec);
HTMLDoc doc = getDocFromURL(my_url);
// Do stuff with the doc.
}
public static HTMLDoc getDocFromURL(URL url)
{
try
{
URLConnection u = url.openConnection();
if ( u instanceof HttpURLConnection )
{
HttpURLConnection http_u = (HttpURLConnection)u;
int response_code = http_u.getResponseCode();
if (response_code == 300 || response_code == 301 || response_code == 302)
{
URL redirected_url = getRedirectedURL(url);
return getDocFromURL(redirected_url);
}
}
return null;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
问题是,我不知道 getRedirectedURL(url) 方法应该是什么样子。是否可以快速拨打我不熟悉的 http_u 电话?