javarssredditrome

ROME custom user agent/reading Reddit RSS


So I'm trying to make a Discord bot that uses a Reddit RSS feed to post some info about new posts. I'm making this in Java and am currently working on pulling the RSS feed. Trouble is, Reddit rejects whatever user agent ROME uses by default, I cannot seem to find a feasible alternative to ROME short of implementing one myself, and the only solution I can find to set a custom user agent in ROME uses a bunch of deprecated functionality. How do I set a custom user agent in ROME?


Solution

  • With Apache HttpClient 4 and Rome 1.7.0 you can set the user agent string like this:

    CloseableHttpClient customClient = HttpClients.custom()
                        .setUserAgent("Your custom user agent string here")
                        .build();
    String url = "http://stackoverflow.com/feeds/tag?tagnames=rome";
    try (CloseableHttpClient client = customClient) {
        HttpUriRequest request = new HttpGet(url);
        try (CloseableHttpResponse response = client.execute(request);
            InputStream stream = response.getEntity().getContent()) {
            SyndFeedInput input = new SyndFeedInput();
            SyndFeed feed = input.build(new XmlReader(stream));
            System.out.println(feed.getTitle());
        }
    }
    

    It is more lines of code than before, but easier to configure. They've deprecated the old Rome Fetcher.