ROME 自定义用户 agent/reading Reddit RSS

ROME custom user agent/reading Reddit RSS

所以我正在尝试制作一个 Discord 机器人,它使用 Reddit RSS 提要 post 一些关于新 post 的信息。我正在 Java 进行此操作,目前正致力于拉取 RSS 提要。问题是,Reddit 拒绝 ROME 默认使用的任何用户代理,我似乎无法找到 ROME 的可行替代方案,除非自己实现一个,而且我能找到的唯一解决方案是在 ROME 中设置自定义用户代理使用一堆已弃用的功能.如何在 ROME 中设置自定义用户代理?

我通过简单地获取提要的标准 InputStream 并通过 SyndFeed feed = input.build(new XmlReader(stream));

构建提要来解决我自己的问题

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

如果没有,您应该能够发出只读 JSON 请求而无需身份验证,例如 "GET https://www.reddit.com/r/funny/new.json"

使用 Apache HttpClient 4 and Rome 1.7.0 你可以像这样设置用户代理字符串:

CloseableHttpClient customClient = HttpClients.custom()
                    .setUserAgent("Your custom user agent string here")
                    .build();
String url = "http://whosebug.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.