Мне дан сокращенный URL, и я хочу получить расширенную форму.Приведенная ниже функция 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: Unable to start activity ComponentInfo
.И ошибка указана на вышеуказанную строку.Если я удалю вышеуказанную строку, ошибки не возникнет.Даже я не могу использовать функцию getResponseCode()
.
int status = 0;
try {
status = httpURLConnection.getResponseCode();
} catch (IOException e) {
e.printStackTrace();
}
Эта часть кода также имеет ту же проблему.работает в затмении, но не в Android.
Любая помощь будет принята с благодарностью.
Редактировать: Код с использованием функции выше,
ExpandUrl expandUrl = new ExpandUrl();
String expandedUrl = expandUrl.expand(shortenedUrl);
Примечание. Функция раскрытия определяется внутри class
ExpandUrl.