【发布时间】:2015-12-17 04:09:09
【问题描述】:
我正在使用 node.js 编写一个应用程序,它向 github 发送请求并获取 github 项目问题的 html 页面。当我为第 40 页发送更多请求时,我收到 429 请求响应。我怎样才能克服 github 的这个 RATE 限制?
function requestPage(pageNo){
var changedUrl = url+"?page="+pageNo+"&q=is%3Aissue+is%3Aopen"; //URL for requesting all the pages individually
request(changedUrl, function(error, response, html){ //requesting thee web page
if(error){
return error;
}
else{
var $ = cheerio.load(html);
if(pageNo == 40){
console.log(response.statusCode);
fs.writeFile("page.html", html ,'utf8',function(err){
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
}
//functions
}
});
}
for (var i = 1; i <= noOfPages; i++) {
requestPage(i);
}
【问题讨论】:
-
当您的请求收到
429响应时,您可以使用setTimeout和/或队列仅在等待延迟过去后触发您的下一个请求...返回请求标头X-RateLimit-Remainingby github应该会让你知道你需要等待多长时间。 -
我是新手,你能告诉我如何检查“X-RateLimit-Remaining”作为回应
-
当然可以,但您应该先分享您的代码:如何连接到 github 的 API?
-
@SunilKumar 请edit您的问题包括相关的代码。评论不适合它。
-
另外,请使用谷歌。很快搜索“github api limits”给了我这篇文章:developer.github.com/v3/rate_limit