Ошибка 403 при получении контента с URL - PullRequest
2 голосов
/ 09 августа 2011

Я пытаюсь автоматизировать процесс.Для этого мне нужно получить XML, нажав URL, несколько раз за 1 прогон, а затем проанализировать его.За 1 прогон программы, URL может быть найден где-то от 4 до 25 раз.Все это выглядит нормально до тех пор, пока не будет получен ответ об ошибке 403.

Интересно, что 403 всегда срабатывает при каждом 5-м или 6-м обращении к URL.

Я использую JDOM для анализа XMLответ.

Я пробовал коды:

Document doc = builder.build(new InputSource(url.openStream()));

и

HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB;     rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)"); 
Document doc = builder.build(conn.getInputStream());

Со вторым я получаю исключение:

org.jdom.input.JDOMParseException: Error on line 1: White spaces are required between publicId and systemId.

Может ли кто-нибудь помочь мне избавиться от 403. Обратите внимание, что я не имею никакого контроля над источником, если требуется внести изменения, как говорилось о здесь

ТакжеЯ не уверен, что эта ссылка полезна.

Спасибо.

[ОБНОВЛЕНИЕ 1]: Это как-то работает, без необходимости sleep:

try{
            doc = builder.build(conn.getInputStream());
        }catch(IOException ioEx){
            doc = builder.build(new InputSource(url.openStream()));
}

1 Ответ

3 голосов
/ 09 августа 2011

403 означает, что запрос понят, но сервер отказывается его обрабатывать.Посмотрите заголовки, которые вы отправляете.А в случае сбоя запустите метод TRACE http, чтобы получить точное ходатайство, которое вы выполняете.

Когда вы устанавливаете соединение http, вы отправляете вместе с запросом метод, который вы хотите выполнить.

Одним из этих методов является TRACE.

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

Возможно, вы превышаете максимальное количество петиций, если у них есть какой-либо механизм.

...