Java Can';t从给定的缩短URL获取扩展URL

Java Can';t从给定的缩短URL获取扩展URL,java,android,httpurlconnection,Java,Android,Httpurlconnection,我得到了一个缩短的网址,我想得到扩展的形式。下面的java函数用于实现这一点 public String expand(String shortenedUrl){ URL url = null; try { url = new URL(shortenedUrl); } catch (MalformedURLException e) { e.printStackTrace(); }

我得到了一个缩短的网址,我想得到扩展的形式。下面的java函数用于实现这一点

public String expand(String shortenedUrl){
        URL url = null;
        try {
            url = new URL(shortenedUrl);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        // open connection
        HttpURLConnection httpURLConnection = null;
        try {
            httpURLConnection = (HttpURLConnection) url.openConnection(Proxy.NO_PROXY);
        } catch (IOException e) {
            e.printStackTrace();
        }

        // stop following browser redirect
        httpURLConnection.setInstanceFollowRedirects(false);
        // extract location header containing the actual destination URL
        String expandedURL = httpURLConnection.getHeaderField("Location");
        httpURLConnection.disconnect();


        return expandedURL;
    }
该代码在Eclipse中运行良好,但在android中不起作用

String expandedURL = httpURLConnection.getHeaderField("Location");
上面的行抛出
java.lang.RuntimeException:无法启动activity ComponentInfo
。错误指向上面的那一行。如果删除上述行,则不会遇到错误。甚至我也不能使用
getResponseCode()
函数

int status = 0;
    try {
        status = httpURLConnection.getResponseCode();
    } catch (IOException e) {
        e.printStackTrace();
    }
这段代码也有同样的问题。在eclipse中工作,但在android中不工作

任何形式的帮助都将不胜感激

编辑:使用上述功能的代码是

ExpandUrl expandUrl = new ExpandUrl();
String expandedUrl = expandUrl.expand(shortenedUrl);

注意:函数expand是在
ExpandUrl中定义的。

好的,代码在Eclipse中工作,但在android中不工作。原因是您在主线程中执行此操作并阻塞它。Android不允许您这样做并抛出运行时错误

我尝试在android中使用
AsyncTask
实现您的代码。它很好用。 试试看

要了解有关
AsyncTask
的更多信息,请执行以下操作:


祝你好运

您得到了哪个运行时异常?Android还有一个获取字符串的getHeaderField方法。谢谢你指出这一点。你能粘贴使用上述方法的代码吗?@speedious检查此链接:-正如我提到的,该代码在eclipse中运行良好。它获取所需的url,但为什么在android中不起作用?我错过了什么?哦!我真傻。这是一个错误。谢谢