Как получить URL после перенаправления, когда у вас есть неправильный код ответа? - PullRequest
0 голосов
/ 31 октября 2018

У меня есть ссылка с редиректом на любой сайт. Мне нужно найти URL после всех перенаправлений. Мой код работает отлично, пока я не получу какой-либо плохой ответ, например «HTTP код ответа 401».

Например, мы сократим URL https://google.com до https://short.url.

URLConnection con = new URL("https://short.url").openConnection();
InputStream is = con.getInputStream();
URLAfterRedirect = String.valueOf(con.getURL());
is.close();

Итак, если запрос в порядке, мы получили URL (https://google.com) после перенаправления. Но если есть какой-то код ответа, он выдает мне исключение с нужным мне URL.

java.io.IOException: Server returned HTTP response code: 401 for URL: https://google.com

Как получить этот URL после того, как я успешно перехватил исключение?

1 Ответ

0 голосов
/ 31 октября 2018

Попробуйте это:

URLConnection con = new URL("https://short.url").openConnection();

con.setInstanceFollowRedirects(false);
String new_url = con.getHeaderField("Location");
con = new URL(new_url).openConnection();
InputStream is = con.getInputStream();
URLAfterRedirect = String.valueOf(con.getURL());
is.close();
...