Tag: 节点请求

NodeJS非阻塞I / O性质

我读了关于nodeJS的非阻塞性质,以及I / O操作如何非阻塞。 我创build了一个简单的testing来certificate这一点 var request = require('request'); var http = require('http'); var express = require('express'); var app = express(); app.get('/test1', function (req, res) { res.sendStatus(httpStatus.OK); }); app.get('/test2', function (req, res) { request.get('https://httpbin.org/delay/15', function () { res.sendStatus(httpStatus.OK); }); }); var server = http.createServer(app); server.listen(3003); module.exports = app; 这是整个testing。 test1端点立即返回OK,而由于发送的http请求, test2在15秒后返回OK。 当我调用test2并立即在调用test1之后,在15秒后返回test1的响应。 我希望如果I / O操作是非阻塞的,那么test1响应将立即返回。 我错过了什么? […]

无法将s3对象readstream传递给PUT请求

我有一个简单的情况。 我需要从S3中读取一个对象,并将其输出传递给PUT请求。 这是我的代码使用请求 。 // client.js let AWS = require('aws-sdk') let request = require('request') let bucket = 'my_bucket' let filename = 'path/to/file.zip' let host = 'localhost' let port = 8080 let s3 = new AWS.S3({ . . . }) let readStream = s3.getObject({ Bucket: bucket, Key: filename }).createReadStream() let formData = { applicationType: 'my_app_type', applicationName: […]

使用nodejs服务器与请求包和函数pipe()?

目前,我正在使用nodejs服务器来模拟后端。 服务器是一个networking服务器,并返回不同的请求json对象,工作无懈可击。 现在我必须从另一个域获取json对象,所以我必须代理服务器。 我在npm中find了一个名为request的包。 我可以得到一个简单的例子工作,但我必须转发整个网页。 我的代理代理如下所示: var $express = require('express'), $http = require('http'), $request = require('request'), $url = require('url'), $path = require('path'), $util = require('util'), $mime = require('mime'); var app = $express(); app.configure(function(){ app.set('port', process.env.PORT || 9090); app.use($express.bodyParser()); app.use($express.methodOverride()); app.use('/', function(req, res){ var apiUrl = 'http://localhost:9091'; console.log(apiUrl); var url = apiUrl + req.url; req.pipe($request(url).pipe(res)); }); […]

如何使用npm请求将图像作为表单数据进行POST?

我有一个特定的任务:我需要从源URL下载一个图像,并通过POST请求作为multipart / form-data将其上传到另一个主机。 我试图使用node.js请求库,但从来没有成功。 以下代码不会在请求正文中发送任何内容。 request.post({ url: uploadUrl, formData: { photo: request(imageUri) } }, function (err) { if (err) console.error(err.stack) }); 我试图直接通过表单数据库,但它似乎并没有工作。 如何在不创build临时文件的情况下解决这个问题?

发出GET请求并获取节点stream

我试图发送formData ,一个来自我使用请求的图像stream 问题是请求在formData请求后formData 。 有什么办法可以pipe理图像请求识别? 但可以自由地将参数添加到formData ? 例如: var req = request({ method: 'POST', url: 'http://www.foo.bar/api/v1/tag/recognize', formData: { image_file: request('http://visual-recognition-demo.mybluemix.net/images/horses.jpg'), param2: 'value2' }, json: true, }); 我如何着火: request('http://visual-recognition-demo.mybluemix.net/images/horses.jpg')所以这个响应可以在req 更新:似乎在Content-Length头缺less http://visual-recognition-demo.mybluemix.net/images/horses.jpg响应 你只能得到Transfer-Encoding: chunked 更多细节在这里

如何使用request.js将networking图像传输到s3上传链接

我试图从一个url获取一张照片,并将其传送到一个PUT链接,并上传到一个亚马逊S3存储桶。 这个PUT链接是一个预先签名的上传url,所以需要发生的是PUT请求的主体需要包含照片数据。 我已经尝试了以下,但它似乎并没有工作 – 它似乎并没有通过获取的任何数据。 var request = require('request'); request.get('https://SomeUrlThatRedirectsAFewTimes.com').pipe(request.put('https://mys3uploadlink.com'));

执行https请求时出现CERT_UNTRUSTED错误

我试图从我的节点服务器端执行https request ,但它给我以下错误: – Caught exception: Error: CERT_UNTRUSTED 如果我执行http request那么它工作正常,但对于https 链接 它不工作 。 这是我的代码: var request = require('request'); request('https://en.m.wikipedia.org/wiki/Astrid_Olofsdotter_of_Sweden', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) // Show the HTML for the Google homepage. } }) 任何想法?

如何从node.js中的请求模块获取cookie?

function getCookies(){ request('http://google.com', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(response.headers); } }) } 结果 { date: 'Fri, 11 Dec 2015 07:15:50 GMT', expires: '-1', 'cache-control': 'private, max-age=0', 'content-type': 'text/html; charset=EUC-KR', p3p: 'CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."', server: 'gws', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', […]

在节点express中再次调用相同的请求

我正在使用Express将请求代理到受OAuth 2访问令牌保护的单独API服务器。 当一个令牌到期时,服务器将返回一个401,我现在正在我的路由器中间件中处理,然后刷新与客户端会话(我正在使用express-session )相关的访问令牌。 这是我的代码: router.js app.use('/api', require('./routes.js')); routes.js var express = require('express'), router = express.Router(), routesController = require('./routes.controller.js'); router.route('/*') .get(routesController.fetch); routes.controller.js module.exports.fetch = function(req, res, next) { var options = helpers.buildAPIRequestOptions(req); request(options, function(err, response, body){ if(response.statusCode === 401) { authController.refreshToken(req, res, next); } else { res.status(response.statusCode).send(body); } }); }; authController module.exports.refreshToken = function(req, res, […]

节点请求某个站点大部分时间都会导致ETIMEDOUT错误

眼镜 以下是我正在运行的系统的一些背景信息: Ubuntu v 14.04 节点v4.4.0 节点request模块v2.69.0 所有这些都在位于纽约中心的DigitalOcean液滴/服务器上进行。 问题描述 所以我运行下面的js文件: var request = require('request'); var url = 'http://www.supremenewyork.com/'; request(url, function(err, res, body) { if (err) { console.log(err); return; } console.log('body:', body); }); 在我的液滴上。 大概70-80%的时间我尝试这个,现在每一次我尝试这个,我会得到像这样的ETIMEDOUT错误: { [Error: connect ETIMEDOUT 52.6.25.180:80] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', address: '52.6.25.180', port: 80 } 值得注意的是,这些错误似乎是在“波涛”中出现的。 也就是说,我会设法在一段时间内得到一些请求,然后是一串ETIMEDOUT错误。 错误发生的频率比我能够通过大约3:1的错误成功率得到我的请求的次数要多得多。 在我自己的电脑上(运行OS X […]