2014-04-10 5 views
2

У меня есть сценарий, в котором я перенаправляю на URL("xyz.com/redirect") из java. Однако в случае, если перенаправление url("xyz.com/redirect") отключено или если URL перенаправления отключен, я хотел бы получить уведомление, чтобы я мог перенаправить на другой номер URL("xyz.com/handleTimeOut"). Я не могу написать код javascript. Все, с чем я должен справиться, это в конце java. Насколько я знаю, как только я перенаправляю, я потерял контроль над reuqest, поэтому я не понимаю, как это сделать. Пожалуйста помоги.Перенаправление на новый URL-адрес, если перенаправление завершилось неудачно

ответ

4

Вам нужно понять, как работает перенаправление. Когда вы выдаете response.sendRedirect, ответ отправляется в браузер с http 302. На этом этапе вы потеряли весь контроль над ответом на сервере. Браузер обслуживает директиву 302 и переводит пользователя на новый URL-адрес.

Таким образом, один из возможных способов сделать это - это переслать URL-адрес перенаправления с сервера, скажем, открыть http-соединение на стороне сервера с URL-адресом перенаправления. Если вы получили действительный ответ на сервере, то перенаправите его на этот URL.

5

Попробуйте использовать HttpURLConnection, где вы можете getResponseCode()

HttpURLConnection urlCon = new HttpURLConnection(new URL(<String URL>)); 
urlCon.setFollowRedirects(true); 
urlCon.connect(); 
urlCon.getResponseCode() // here you get response code from server 

Если код ответа успешен код 2xx не перенаправлять иначе открытое новое подключение к URL вы хотите перенаправить, если первый URL истек или если URL перенаправления опущен

+0

'urlCon.setInstanceFollowRedirects (true);' – Evorlor

1

Сделайте это простым и просто создайте страницу пользовательских ошибок для статуса 402 или 504, в которую вы указали ссылку для xyz.com/handleTimeOut.

Смежные вопросы