所以我试图制作一个使用Reddit RSS提要的Discord机器人发布有关新帖子的一些信息。我是用Java编写的,目前我正在开发RSS提要。麻烦的是,Reddit拒绝默认情况下ROME使用的任何用户代理,我似乎找不到ROME的可行替代方法,而不是自己实现一个,而我能找到的唯一解决方案是在ROME中设置自定义用户代理使用了一堆不推荐使用的功能。如何在ROME中设置自定义用户代理?
答案 0 :(得分:0)
我通过简单地抓取Feed的标准InputStream并使用SyndFeed feed = input.build(new XmlReader(stream));
答案 1 :(得分:0)
ROME是否允许自定义用户代理?
如果没有,您应该能够在不需要身份验证的情况下发出只读JSON请求,例如“GET https://www.reddit.com/r/funny/new.json”
答案 2 :(得分:0)
使用Apache HttpClient 4和Rome 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。