Tag: http

在GZip编码时进入正文

我正在将HTTP请求正文中的数据发送到具有gzip内容编码的Restify实例。 唯一的问题是我无法访问身体与gzip的数据。 这里是我用来确定它的JS代码,但是req.body是undefined: server.use(function(req, res, next) { if(req.headers['content-encoding'] == 'gzip') { console.log(req); // We have a gzipped body here var zlib = require("zlib"); var gunzip = zlib.createGunzip(); console.log("Body: "+ req.body) console.log("Length: " + req.body.length); } else { apiKey = req.query['apiKey']; authenticateAndRoute(apiKey, req, res, next) } }) 任何人都有关于如何访问这里或相当于req.body的线索?

如何使用nodejs AWS Lambda发送http请求?

我正在使用AWS Lambda来推动Alexa技能套件开发。 为了跟踪事件,我希望脚本在启动时发送一个HTTP请求,但是从云日志看来,好像在执行过程中跳过了http.get函数。 代码如下所示(google.com取代了已经在浏览器中testing过的分析跟踪url)。 exports.handler = function (event, context) { var skill = new WiseGuySkill(); var http = require('http'); var url = 'http://www.google.com'; console.log('start request to ' + url) http.get(url, function(res) { console.log("Got response: " + res.statusCode); // context.succeed(); }).on('error', function(e) { console.log("Got error: " + e.message); // context.done(null, 'FAILURE'); }); console.log('end request to ' […]

检测Google Chrome页面预取

我正在构build一个跟踪和增加网站访问次数的简单工具。 这是简单的: 当服务器收到一个GET请求时,会将该网站数据库中的计数器增加1。 不过,我正在使用Google Chrome的预渲染引擎(“预测networking操作以提高页面加载性能”)出现问题。 该网站是www.domain.com,只要您在浏览器的地址栏中input域名www.domain.com(无需按Enter键),Chrome会发送一个GET请求来预取页面,导致服务器logging访问并将数据库中的计数器增加1.此后,如果用户按Enter键实际加载网页,则服务器将看到另一个GET请求进入,从而再次增加计数器。 这导致在数据库中logging2次重复访问。 据我所知,谷歌浏览器只下载页面,但不执行它,但只要我的服务器获得GET请求,计数器增加。 问 :有什么办法可以解决这个问题吗? 优选地,我想检测是否是预取或实际用户访问网站。

gzip没有服务器支持?

我写了一个最小化和基本parsing/ varreplace的css服务器。 服务器正在使用node.js. 我想从这个服务器gzip我的回应。 正如在IRC中所说的,node.js目前没有gzip库,所以我试图从命令行手动执行(因为我只是在不在caching中时进行gzip压缩)。 我将文件数据推送到临时文件,然后使用exec调用'gzip -c -9 -q ' + tempFile 。 我正确地得到压缩的数据(看来),并发送适当的Content-Encoding标头为'gzip' ,但Chrome报告: Error 330 (net::ERR_CONTENT_DECODING_FAILED): Unknown error 。 还有一些独立的gziptesting人员也失败了(不仅仅是Chrome)。 我假设这是简单的,我不知道为浏览器生成gzip块,看到我从来没有尝试过手动。 任何援助将是有益的。 服务器的速度非常快,但是我需要对内容进行gzip以获得最终用户的最佳性能。 谢谢。 更新我已经validation了我的Content-Length是正确的

Node.js通过套接字发送HTTP的二进制数据

我正在编写自己的http模块(我知道node.js包含一个)我正在使用净模块,当我得到一个静态二进制(图片)文件的请求,如何生成二进制文件的HTTP响应? 当我做的文本文件(如HTML文件),只是工作..

AJAX发送数据到Node.js服务器

我试图用AJAX发送数据到一个Node.js服务器,但不断碰到同样的问题,接待。 这是客户端JavaScript / AJAX代码: var objects = [ function() { return new XMLHttpRequest() }, function() { return new ActiveXObject("MSxml2.XMLHHTP") }, function() { return new ActiveXObject("MSxml3.XMLHHTP") }, function() { return new ActiveXObject("Microsoft.XMLHTTP") } ]; function XHRobject() { var xhr = false; for(var i=0; i < objects.length; i++) { try { xhr = objects[i](); } catch(e) { […]

Tcp用express表示在nodejs中延迟了ack

我正在为nginx做压力testing,并使用nodejs后端。 我发现延迟Keepalive。 我从testing中删除了nginx,并且遇到同样的问题。 我在用着: ApacheBench,版本2.3 节点v0.8.14。 Ubuntu 12.04.1 LTS Express 3.0.3 源代码是: var express = require('express'); var cluster = require('cluster'); var numCPUs = require('os').cpus().length; if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', function(worker, code, signal) { console.log('worker ' + worker.process.pid + ' died'); }); } else { […]

NodeJS – TCP – 发送一个HTTP请求

我试图通过TCP套接字发送一个HTTP请求。 但是我根本没有收到www.google.com的任何回应。 不知道我做错了什么。 这里是代码: var client, net, raw_request; net = require('net'); raw_request = "GET http://www.google.com/ HTTP/1.1\nUser-Agent: Mozilla 5.0\nhost: www.google.com\nCookie: \ncontent-length: 0\nConnection: keep-alive"; client = new net.Socket(); client.connect(80, "www.google.com", function() { console.log("Sending request"); return client.write(raw_request); }); client.on("data", function(data) { console.log("Data"); return console.log(data); }); 希望可以有人帮帮我。 只是澄清…要求缺less两个结束换行符,所有换行符都必须格式为/ r / n。 感谢大家! 🙂

parsingHTTP响应string/缓冲区

我试图parsing一个String或Bufferforms的HTTP响应到一个Object 。 结果将是一个像本地http模块的响应一样的Object 。 我试图导入本机的HTTPparsing器,但结果对我的用例来说太原始​​了: var HTTPParser = process.binding('http_parser').HTTPParser; var parser = new HTTPParser(HTTPParser.RESPONSE); parser.onHeadersComplete = function(res) { console.log('onHeadersComplete'); console.log(res); }; parser.execute(data, 0, data.length); 这将返回这样的事情: onHeadersComplete { headers: [ 'X-Powered-By', 'Express', 'Content-Type', 'text/plain', 'Content-Length', '2', 'Date', 'Sat, 19 Apr 2014 20:16:45 GMT', 'Connection', 'keep-alive' ], statusCode: 200, versionMajor: 1, versionMinor: 1, shouldKeepAlive: true, upgrade: false […]

请求总是返回空错误对象

我使用Request和标准的Node.js HTTP模块来编写一个简单的rest服务。 现在,服务器端请求处理程序如下所示: response.writeHead("400","Nope"); response.end(); 客户端代码如下所示: request.get(href,handleResponse); function handleResponse(error,response,body) { console.log(arguments); } response.statusCode是400 ,但error始终为null 。 我需要做什么服务器端获取请求模块来识别响应是一个错误?