Tag: http status code 403

如何在restify中处理403 HTTP错误?

我一直在restify中处理HTTP错误。 这些是我一直在尝试的代码: function send403(req, res, err, cb) { console.log('Forbidden'); res.end(); } 然后我在ForbiddenError事件中使用该函数: server.on('ForbiddenError', send403); 我期待每一次服务器接收一个请求,而无需authorization头执行该函数 server.get('/resource', function (req, res, next) { if(typeof req.headers['authorization'] === 'undefined') { return next(new restify.ForbiddenError()); } else { // HTTP 200 } }); 每次我尝试访问我不断得到该默认restify JSON消息的url。 仅供参考我已经尝试了404错误的相同的方法,它的工作原理 server.on('NotFound', send404); 每次我尝试发送一个请求到一个不存在的URL, send404函数将被执行。

Node.js:如何限制请求列表?

我正在写一个node.js应用程序,它需要从提供程序的页面列表中获取一些数据: var list = [ { url: 'http://www.example.com/1' }, { url: 'http://www.example.com/2' }, … { url: 'http://www.example.com/N' }, ]; 目前我正在使用async.each ,这很好地工作: async.each( list, // 1st param is the array of items function(elem, callback) { // 2nd param is the function that each item is passed to request(elem.url, function (error, response, body) { if (!error && […]

带有访问令牌的Oauth2 GET请求在NodeJS中返回403

我目前正在尝试开发一个使用DeviantArt API的节点应用程序。 所有的请求必须通过Oauth2,所以我决定去client_credentialsstream程,因为代码将是所有私人。 所以,一旦我在DeviantArt中注册我的应用程序,我得到了我的clientId和clientSecret。 我正在使用client-oauth2软件包进行授权,代码如下所示: const Oauth2 = require('client-oauth2'); … function auth() { return new Promise((resolve, reject) => { let auth = new Oauth2({ clientId: KEYS.client_id, clientSecret: KEYS.client_secret, accessTokenUri: AUTH_URL, // https://www.deviantart.com/oauth2/token authorizationGrants: ['credentials'] }); auth.credentials.getToken() .then((data) => { resolve({ token: data.accessToken }); }) .catch(reject); }); } 这工作到目前为止,我得到我的access_token 。 所以,我可以使用这个令牌来执行对API的任何请求,并且它实际上通过curl和浏览器使用: https://www.deviantart.com/api/v1/oauth2/browse/newest?access_token={{access_token}} 回到我的节点应用程序中,我正在使用请求包,代码如下所示: const request= require('request'); […]

为什么这个请求返回一个403?

我正在收集图像来训练一个ML程序,为此,我做了以下function。 它适用于我迄今为止testing过的每个服务器,除了一个: exports.grabResize = function(name,url,skip) { var options = { jar: true, maxRedirects: 5, headers: { 'Connection': 'keep-alive', 'Accept': '*/*', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36' }, timeout: 15000, url:url }; var file = fs.createWriteStream(name); var transformer = sharp().resize(579,null).withoutEnlargement().jpeg() .on('error',function(err){console.log(err);return(true);}); request(url).on('error', function(err) { return(true); }).on('response', function (res) { var […]