Articles of http

HTTP分块持久连接的替代方法?

根据Server-Sent Events上的W3C规范 : 作者也警告说,HTTP分块会对这个协议的可靠性产生意想不到的负面影响。 在可能的情况下,应该禁用分块处理事件stream,除非消息的速率足够高,否则无关紧要。 如何在node.js中执行此服务器端? 设置Content-Length标题并不是一个真正的select,因为连接应该永远不会closures。 我会设置响应头Transfer-Encoding来identity或完全删除Transfer-Encoding头?

Node.js请求与zlib库

我试图找出一种方法,使这个图书馆工作与gzip和放气。 看着这个问题,试了一下这个build议,但由于某种原因还是不行。 我对node.js比较陌生,有人可以看看我的代码,并告诉我我做错了什么? var request = require("request"), zlib = require( 'zlib' ); var req = request( { uri: "http://google.com", headers: { 'Accept-Encoding': 'gzip, deflate', 'user-agent': 'Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1', }, }, function( error, res, body ) { var output; switch ( res.headers[ 'content-encoding' ] ) { case 'gzip': var gzip = zlib.createGunzip(); […]

使用express node.js计算http请求所花费的时间

我使用node.jslogging明文文件中的每个服务器调用详细信息,并以扩展日志格式 表示 。为此,我需要找出操作花费的时间(http get或post)。 如何找出特定请求所需的时间? 任何想法将是伟大的。

在node.js中发送HTTP响应

我正在尝试在节点中发送一个http响应,以在浏览器中打印结果。 简化的源代码如下。 基本上,所有的variables都是在程序的某个地方定义的,所以这不应该成为问题。 当我尝试运行脚本时,我不断收到错误: http.js:783 throw new TypeError('first argument must be a string or Buffer'); TypeError: first argument must be a string or Buffer 那么熟悉node.js或javascript语法的人可以让我知道问题是什么? upload = function(req, res) { var fileInfos = [obj, obj]; //defined as an array of objects var counter = 0; counter -= 1; if (!counter) { res.end({files: fileInfos}); //files is […]

在节点服务器中调用rest服务

我已经在Node服务器中创build了一个restfull服务 express().use('/getdata', express() .get('/', function (req, res) { //…. }) .put('/', function (req, res) { //…. }) ); 当我从前端/浏览器执行GET或PUT到http:// localhost / getdata时,它的工作正常。 那么基本上如何在节点服务器上做同样的事情呢,在使用HTTP对象的节点服务器上获取请求。 urlpath将如何?

HTTP请求stream程图

我build立一个Web应用程序。 当我开始logging我的应用程序时,我正在寻找一种方式来描述用户访问网站的方式。 例如:授权的方式。 用户访问任何URL ./*,那么如果用户有一个有效的证书,他将被redirect到注册页面,否则他将被redirect到未经授权的页面。 在我浏览过已知的图表(编程stream程图,顺序图)之后,我不知道其他图表能够描述给定的场景吗?

Node.js`request.get`:将主体存储在variables中

我是Node.js的新手,非常抱歉,可能是一个愚蠢的问题… 这是我的代码: #!/usr/bin/env coffee –bare # 3rd party request = require('request') request.defaults({'encoding': 'utf8'}) module.exports.fetchDepartments = fetchDepartments fetchDepartments = (url) -> _body = '' getHandler = (error, response, body) -> util.debug "HTTP response code: #{response.statusCode}" if error util.error error else _body = body request.get(url, getHandler) _body console.log fetchDepartments('https://ntst.umd.edu/soc/') 控制台正在打印对util.debug()的调用,但似乎_body仍然是一个空string。 如何从HTTP响应存储HTML?!?

股票市场API Node.JS

我对Node.JS有点新鲜,想了解如何利用另一个人的API提供的信息。 例如。 下面是我想要使用的API http://live-nse.herokuapp.com/?symbol=AMAR 可以在https://github.com/ashwanthkumar/Live-NSE-Stockfind源代码。 我真的很感兴趣,我可以如何使用这些信息,例如,如果你使用该链接来获取符号AMAR的统计数据,我相信它的响应与JSON? (请纠正我,如果我错了)。 这是一个示例回应。 {"lastUpdateTime":"03-NOV-2013 19:50:03","tradedDate":"03NOV2013","data":[{"extremeLossMargin":"-","cm_ffm":"15.47","bcStartDate":"19-DEC-12","change":"0.35","buyQuantity3":"200","sellPrice1":"-","buyQuantity4":"181","sellPrice2":"-","priceBand":"5","buyQuantity1":"530","deliveryQuantity":"-","buyQuantity2":"1","cm_adj_low":"6.00","sellPrice5":"-","quantityTraded":"-","buyQuantity5":"1,000","sellPrice3":"-","sellPrice4":"-","open":"7.55","cm_adj_high":"48.20","low52":"6.00","securityVar":"-","marketType":"N","pricebandupper":"8.25","totalTradedValue":"0.11","faceValue":"10.00","ndStartDate":"-","previousClose":"7.55","symbol":"AMAR","varMargin":"100.00","lastPrice":"7.90","pChange":"4.64","adhocMargin":"-","companyName":"Amar Remedies Limited","averagePrice":"7.78","secDate":"-","series":"BE","isinCode":"INE787G01011","indexVar":"-","pricebandlower":"7.55","totalBuyQuantity":"2,113","high52":"48.20","purpose":"ANNUAL GENERAL MEETING","cm_adj_low_dt":"28-JUN-13","closePrice":"7.90","recordDate":"-","cm_adj_high_dt":"08-JAN-13","totalSellQuantity":"-","dayHigh":"7.90","exDate":"17-DEC-12","sellQuantity5":"-","bcEndDate":"26-DEC-12","ndEndDate":"-","sellQuantity2":"-","sellQuantity1":"-","buyPrice1":"7.85","sellQuantity4":"-","buyPrice2":"7.40","sellQuantity3":"-","applicableMargin":"100.00","buyPrice4":"7.30","buyPrice3":"7.35","buyPrice5":"7.25","dayLow":"7.55","deliveryToTradedQuantity":"-","totalTradedVolume":"1,352"}]} 我想知道如何让我的Node.JS应用程序来接收这些信息。 我可以把它设置为一个VAR,所以我可以引用它,无论我以后想?

嵌套与q-io承诺

我试图理解那个承诺,回报另一个承诺成为回报价值的想法。 这就是我在wiki上的Q文档中阅读的内容。 https://github.com/kriskowal/q#tutorial 这是理想的情况,因为我使用q-io / http使用promise来发出请求。 然而,该函数返回一个新的承诺身体的价值。 而不是将我的代码的其余部分embedded到我的第一个函数中。 我希望在嵌套承诺完成时得到通知。 但是,由于范围,我似乎无法做到这一点。 但是我一直在读,我的外在function应该成为内在承诺的价值。 我错过了什么吗? 防爆。 module.exports = function (obj) { var getFiles = HTTP.request(obj); getFiles .then(function(res) { return res.body.read() }); return getFiles; }; 我希望在res.body.read()使用Q.all()实现其承诺时得到通知,但我不知道如何获得该值。 我觉得getFiles应该成为内心的承诺。 对?

在Nodejs(request)中如何发送mutliPart http请求中的文件

我怎样才能发送文件使用MultiPart从Nodejs使用请求? 这将和下面的Curl命令一样: curl -X POST -F "photos[]=@img.jpg;type=image/jpg" https://example.com 它创build的Http请求: { "json": null, "files": { "photos[]": "data:image/jpg;base64,[Binary] }, "form": {}, "headers": { "Accept": "*/*", "Content-Type": "multipart/form-data; boundary=—————————-0195fbe0d4ab", "Connection": "close", "Host": "httpbin.org", "Content-Length": "42311", "User-Agent": "curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5" }, "origin": "23.125.128.191", "data": "", "url": "http://httpbin.org/post", "args": {} }