3

我正在为4chan API 做代理。我在 Node.js + Express 中使用request.js对 API 进行查询,但我不知道如何准确实现 API 所需的“If-modified-since”,这是代码:

app.get('/api/boards', function(request, response){
    req({uri:'https://api.4chan.org/boards.json', json: true}, function (error, res, data) {
        if (!error && res.statusCode == 200) {
            response.jsonp(data['boards']);
        }
    });
});

如果我对已经完成的 4chan 进行查询,它不会回答并且超时触发。

4chan API 规则:

  • 每秒不要发出超过一个请求。
  • 线程更新应设置为至少 10 秒,最好更高。
  • 执行请求时使用 If-Modified-Since。
  • 使用与应用相同的协议发出 API 请求。仅当用户通过 HTTPS 访问您的应用程序时才使用 SSL。
  • 更多内容稍后...
4

1 回答 1

4

请求模块允许您将请求标头传递到选项中,因此您可以这样做:

var request = require('request');
var options = {
  uri: 'https://api.4chan.org/boards.json',
  json: true,
  headers: {'If-Modified-Since': 'Sun, 06 Oct 2013 01:16:45 GMT'}
};

request(options, function (error, res, data) {
  // other processing
});
于 2013-10-06T01:19:01.650 回答