RSS Reader 403 и 503 ошибки

Я пытаюсь прочитать RSS-канал http://www.youm7.com/new3agelrss.asp с помощью RSS-каналов с Java - Учебное пособие для Ларса Фогеля.

Мне удалось без проблем прочитать другие RSS-каналы, используя точный код.

По этой ссылке я получаю

Сервер вернул код ответа HTTP: 403 для URL: http://www.youm7.com/new3agelrss.asp < / а>

Согласно java.io.IOException: сервер вернулся Код ответа HTTP: 403 для URL Я отредактировал private InputStream read() метод следующим образом:

private InputStream read() {
    try {

      HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();
      httpcon.addRequestProperty("User-Agent", "Mozilla/4.76");
      return httpcon.getInputStream();
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
  }

Теперь я получаю:

Сервер вернул код ответа HTTP: 503 для URL: http://www.youm7.com/new3agelrss.asp < / а>

Даже то, что я могу открыть этот url, бросить в браузер! и вы можете попробовать сами. Пожалуйста помоги. Я открыт для любого альтернативного подхода. Заранее спасибо.

Примечание.

Я установил на свой Mac два приложения для чтения RSS. (RSS Notifier и RSS Bot), и обоим удалось прочитать этот RSS.


person hasan    schedule 30.09.2013    source источник


Ответы (1)


Ваш код, вероятно, подходит для большинства сайтов. Однако этот сайт выглядит так, как будто он проверяет и запускает некоторый javascript на странице перед его перенаправлением (возможно, чтобы попытаться помешать людям очистить его). Поэтому я не уверен, что это сработает, если только вы не можете установить cookie, который они устанавливают, или эмулировать ответ, который они ожидают (я не уверен, есть ли у вас доступ ко всему, что может запускать javascript для обойти это тоже).

Обновление: там есть небольшой вопрос / ответ, который вызывает вопрос (например, некоторые числа, которые нужно сложить). Я предполагаю, что вы могли бы посмотреть на очистку исходной страницы, произвести вычисления и отправить форму обратно с ответом. Я не уверен, что хочу опубликовать решение этой проблемы, поскольку похоже, что код существует, чтобы точно попытаться остановить это. Кроме того, они могли легко изменить контрольный вопрос / формат. Так что каким-то образом запуск javascript, возможно, будет лучшим способом, если это возможно.

person Ian    schedule 30.09.2013
comment
Я добавил примечание к вопросу, применим ли ваш ответ? - person hasan; 30.09.2013
comment
Я подозреваю, что все, что может читать Javascript, будет работать (в противном случае вам придется разработать что-то конкретное для заданного вопроса, который может варьироваться). Интересно, поможет ли что-то вроде htmlunit.sourceforge.net, поскольку я понимаю, что он поддерживает некоторый javascript. - person Ian; 30.09.2013