我有这个代码:
request('http://www.nytimes.com/2015/10/04/upshot/soda-industry-struggles-as-consumer-tastes-change.html', function (err, resp, body) {
if (err) {
console.error(err);
}
});
如果收到此错误:
(node) warning: possible EventEmitter memory leak detected. 11 pipe listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Request.addListener (events.js:179:15)
at Request.init (/Users/amills001c/WebstormProjects/underscore/alleyoop/node_modules/request/request.js:496:8)
at Redirect.onResponse (/Users/amills001c/WebstormProjects/underscore/alleyoop/node_modules/request/lib/redirect.js:149:11)
at Request.onRequestResponse (/Users/amills001c/WebstormProjects/underscore/alleyoop/node_modules/request/request.js:944:22)
at ClientRequest.emit (events.js:107:17)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:426:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:111:23)
at Socket.socketOnData (_http_client.js:317:20)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
(node) warning: possible EventEmitter memory leak detected. 11 end listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Request.addListener (events.js:179:15)
at Request.start (/Users/amills001c/WebstormProjects/underscore/alleyoop/node_modules/request/request.js:843:8)
at Request.end (/Users/amills001c/WebstormProjects/underscore/alleyoop/node_modules/request/request.js:1394:10)
at end (/Users/amills001c/WebstormProjects/underscore/alleyoop/node_modules/request/request.js:564:14)
at Immediate._onImmediate (/Users/amills001c/WebstormProjects/underscore/alleyoop/node_modules/request/request.js:578:7)
at processImmediate [as _immediateCallback] (timers.js:367:17)
[Error: Exceeded maxRedirects. Probably stuck in a redirect loop http://www.nytimes.com/2015/10/04/upshot/soda-industry-struggles-as-consumer-tastes-change.html?_r=4]
我没有看到重定向循环,所以知道它可能是什么吗? 谢谢
似乎 nytimes.com 会在禁用 cookie 的情况下生成无限循环的重定向,因此您需要在发出请求时启用它们:
request({
url: 'http://www.nytimes.com/2015/10/04/upshot/soda-industry-struggles-as-consumer-tastes-change.html',
jar: true
}, function (err, resp, body) {
});
这解决了问题 idd,感谢您的帮助, @calibr :+1:
这解决了问题。 谢谢@calibr
如果你是从谷歌来的,而 cookie jars 不能解决你的问题(或者你不想要它们)阅读https://github.com/request/request/issues/3139以找出发生这种情况的原因和如何修复它。
最有用的评论
似乎 nytimes.com 会在禁用 cookie 的情况下生成无限循环的重定向,因此您需要在发出请求时启用它们: