Company logo
  • Jobs
  • Bootcamp
  • About Us
  • For professionals
    • Home
    • Jobs
    • Courses
    • Questions
    • Teachers
    • Bootcamp
  • For business
    • Home
    • Our process
    • Plans
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Calculator

0

116
Views
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?

8 months ago · Santiago Trujillo
3 answers
Answer question

0

I fixed my own problem by simply grabbing a standard InputStream of the feed and building the feed through that with SyndFeed feed = input.build(new XmlReader(stream));

8 months ago · Santiago Trujillo Report

0

Does ROME allow for customizing the user agent?

If not, you should be able to make read-only JSON requests without needing authentication, for example "GET https://www.reddit.com/r/funny/new.json"

8 months ago · Santiago Trujillo Report

0

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.

8 months ago · Santiago Trujillo Report
Answer question
Find remote jobs