Java, android, разрешить URL-адрес, получить перенаправленный uri

У меня есть аутентифицированный URL: www.domain.com/alias

что при запросе будет возвращен другой URL: www.another.com/resource.mp4 (не защищен)

Я хотел бы знать, существует ли в Java метод, который вернет реальный url из заданного. Что-то вроде: second = solve (first)

Я подумываю загрузить первый и попытаться прочитать ответ, возможно, атрибут location, но поскольку я не являюсь Java-гуру, я хотел бы знать, имеет ли Java уже это.

Ответ 1

Это проблема, которую я имел в отношении перенаправления URL. Попробуйте следующий код:

URL url = new URL(url);
HttpURLConnection ucon = (HttpURLConnection) url.openConnection();
ucon.setInstanceFollowRedirects(false);
URL secondURL = new URL(ucon.getHeaderField("Location"));
URLConnection conn = secondURL.openConnection();

"Магия" здесь происходит в этих двух шагах:

ucon.setInstanceFollowRedirects(false);
URL secondURL = new URL(ucon.getHeaderField("Location"));

По умолчанию для экземпляров InstanceFollowRedirects установлено значение true, но вы хотите установить значение false для захвата второго URL-адреса. Чтобы получить второй URL-адрес с первого URL-адреса, вам нужно получить поле заголовка "Местоположение".

Ответ 2

Я устранил эту проблему на сайтах, где у нас есть маршрутизатор MikroTik, используя фильтр протокола уровня 7, как показано ниже. Это не помогает устройствам отключить сеть WiFi (очевидно), но, по крайней мере, дает им некоторую отсрочку, когда они подключены к домашним и/или работающим сетям Wi-Fi.

Во-первых, создайте определение протокола:

/ip firewall layer7-protocol
add comment="Frigging javascript redirects on chrome browsers" \
    name=Javascript_Redirect \
    regexp="^.+(spaces.slimspot.com|mostawesomeoffers.com).*\$"

Теперь, чтобы фактически фильтровать этот трафик

/ip firewall filter
add action=drop chain=forward comment=\
    "Block and log Javascript_Redirect L7 Protocol" layer7-protocol=\
    Javascript_Redirect log=yes log-prefix=JSredirect_

Другие брандмауэры, обладающие пропускной способностью уровня 7, также могут блокировать эти переадресации аналогичным образом.

Ответ 3

asfafaf и sninafiasn naifasdd asfasfsa