RSS-канал с использованием Spring загрузки - PullRequest
0 голосов
/ 22 марта 2019

Я новичок в загрузке Java и Spring, и я пытаюсь читать и анализировать RSS-канал с сайта.

В чем проблема: Мне нужно прочитать все данные из ленты, и это будет постраничный вызов.

Каково мое решение: Думаю, я смогу добиться этого, если прочитаю данные в цикле, пока не достигну конца и данных больше не будет.Мой код:

        SyndFeedInput input = new SyndFeedInput();
        int pageNumber = 1;

        do {
            URL feedSource = new URL("https://altaonline.com/feed?paged=" + pageNumber);
            SyndFeed feed = input.build(new XmlReader(feedSource));

            pageNumber = pageNumber + 1;
        }
        while ( pageNumber <= 27);    //Need to fix this.

Мне нужна помощь с: Если по этому URL нет данных, это дает мне исключение.Я не уверен, как проверить, действителен ли URL, или есть какие-либо данные для обработки.Как это сделать

1 Ответ

2 голосов
/ 22 марта 2019

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

    SyndFeedInput input = new SyndFeedInput();
    int pageNumber = 1;

    try{
        do {
            URL feedSource = new URL("https://altaonline.com/feed?paged=" + pageNumber);
            SyndFeed feed = input.build(new XmlReader(feedSource));
            pageNumber++;
        }
        while (pageNumber <= 27);
    } catch (IOException ex){
        System.out.println("IO exception occurred due to: "+ ex);
        //Handle this exception accordingly
    } catch (FeedException ex) {
        System.out.println("Feed exception occurred due to: "+ ex);
        //Handle this exception accordingly
    }

Вы можете даже поймать Exception внизу для обработки любых других неизвестных исключений, которые могут произойти. Обратите внимание, что System.out.println приведен только в качестве примера и в идеале его следует заменить с помощью библиотеки журналов.

...