Java Can';t从给定的缩短URL获取扩展URL
我得到了一个缩短的网址,我想得到扩展的形式。下面的java函数用于实现这一点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(); }
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中不起作用?我错过了什么?哦!我真傻。这是一个错误。谢谢