ROME自定义用户代理/阅读Reddit RSS

时间:2017-04-28 20:18:38

标签: java rss reddit rome

所以我试图制作一个使用Reddit RSS提要的Discord机器人发布有关新帖子的一些信息。我是用Java编写的,目前我正在开发RSS提要。麻烦的是,Reddit拒绝默认情况下ROME使用的任何用户代理,我似乎找不到ROME的可行替代方法,而不是自己实现一个,而我能找到的唯一解决方案是在ROME中设置自定义用户代理使用了一堆不推荐使用的功能。如何在ROME中设置自定义用户代理?

3 个答案:

答案 0 :(得分:0)

我通过简单地抓取Feed的标准InputStream并使用SyndFeed feed = input.build(new XmlReader(stream));

构建Feed来解决我自己的问题

答案 1 :(得分:0)

ROME是否允许自定义用户代理?

如果没有,您应该能够在不需要身份验证的情况下发出只读JSON请求,例如“GET https://www.reddit.com/r/funny/new.json

答案 2 :(得分:0)

使用Apache HttpClient 4Rome 1.7.0,您可以设置用户代理字符串,如下所示:

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());
    }
}

它比以前更多的代码行,但更容易配置。他们已弃用旧的Rome Fetcher