我正试图在一次api通话中从random
subreddit
中提取随机发布内容,而我无法弄清楚如何。这是可能的,如果没有,我将如何通过多个api调用和最小开销实现这一目标?
以下请求会随机返回subreddit
。
http://www.reddit.com/r/random.json
与json
扩展程序的期望相反,从调用返回的数据是带有标记的完整网页,这不是我想要的。具有实际subreddit
的相同请求如下所示。
http://www.reddit.com/r/apple.json
此请求以subreddit
格式生成苹果json
。为了从苹果subreddit
中检索5个帖子,可以进行以下api调用。
http://www.reddit.com/r/apple/comments.json?limit=5
我想我可以将上述api调用应用到random
网址 - 如下所示。
http://www.reddit.com/r/random/comments.json?limit=5
这可以按预期工作,但结果不是json
格式。这是一个带标记的完整网页。
答案 0 :(得分:3)
<强>更新强>
自我原始响应以来,/ r / random已更新以保留扩展名,因此您现在也可以避免手动处理Location
标题:
$ curl http://www.reddit.com/r/random.json
{
"data": {
"after": "t3_1ubf3e",
...
原始回复
http://www.reddit.com/r/random导致重定向到随机subreddit,但不保留扩展名。此时,实现目标的最佳方法是检查Location:
标头的响应,然后对该subreddit执行对JSON端点的请求。
例如,使用curl:
$ curl --include http://www.reddit.com/r/random
HTTP/1.1 302 Moved Temporarily
Location: http://www.reddit.com/r/cocktails/
...
reddit说你应该检查“鸡尾酒”subreddit,所以请求该subreddit的JSON数据:
$ curl http://www.reddit.com/r/cocktails/.json
{
"data": {
"after": "t3_1ubf3e",
...