Articles of http

如何防止node.js进行未来连接?

我正在执行以下操作:在负载下,达到某个阈值时,禁止未来的连接,等待服务器处理所有现有的连接,重置服务器,并允许将来的连接。 我以为设置http.maxSockets = 0或http.maxConnections = 0会让我不接受连接,但似乎并非如此。 node.js(或express.js)有没有办法阻止未来的连接?

在Node.js中实现HTTP Post方法的首选方法

我发现了两种方法来获取Node.js中的Post Body数据 下面是2个webservice Post方法,所以在Node.js中通过rest api从客户端获取数据时需要遵循的首选方法,或者是否有其他方法来读取post数据。 第一种方法 //http://localhost:1337/api/postparams1 //Content-Type: application/x-www-form-urlencoded //param1=complete+reference&param2=abcd+1234 function postparams1(req, res) { var result = { Url : req.originalUrl, Method : req.method, Param1 : req.body.param1, Param2 : req.body.param2 }; res.status(200).send(result); } 第二种方法 //http://localhost:1337/api/postparams2 //{ // "param1" : "param value 1", // "param2" : "param value 2" //} function postparams2(req, res) { var data […]

无法在Node / Javascript中链接HTTP请求

我正在尝试重新创build一个我在Node / js中编写的Python脚本,而且我无法用asynchronous/callback的方式来包装我的头。 该脚本相当简单,并使用两个基本的HTTP请求到eBay的API。 第一个请求获取结果项目ID的列表,然后第二个请求获取每个项目的具体信息(描述/列表信息等)。 在Python中,这非常简单,我使用了一个简单的循环。 这不是很快,但它的工作。 然而,在JavaScript中,我正在努力获得相同的function。 我现在的代码如下: var ebay = require('ebay-api'); var params ={}; params.keywords = ["pS4"]; var pages = 2; var perPage = 2; ebay.paginateGetRequest({ serviceName: 'FindingService', opType: 'findItemsAdvanced', appId: '', params: params, pages: pages, perPage: perPage, parser: ebay.parseItemsFromResponse }, function allItemsCallback(error,items){ if(error) throw error; console.log('FOUND', items.length, 'items from', pages, 'pages'); for […]

Node.js服务器向Windows C#客户端发出命令

我有一个项目,最初是作为一个简单的客户端服务器架构计划在HTTP上,用Node.js编写的服务器,客户端是用C#编写的.NET Windows应用程序。 客户应该对Windows C#应用程序进行控制,而后者又会向服务器发送一些数据请求。 现在我正考虑将应用程序的所有控件移动到服务器上,以便.NET应用程序具有最小的UI,并完全通过服务器上的Web UI进行控制。 在这种情况下,客户login到Web应用程序,单击button,服务器将命令和数据发送到Windows上的C#应用​​程序。 当然,如果我通过HTTP来完成这个问题,在客户端的适当configuration方面就会变得一团糟:防火墙规则必须允许从Internet连接到客户计算机,NAT必须得到处理。 有没有办法在客户端避免这些问题? 例如,通过从客户端发起连接(一旦客户端软件启动),然后不断打开接收来自服务器的命令?

与www和非www的Nodejs会话问题

我有以下的条件 (1)如果我访问https://example.com如果去login页面。 (2)同样如果我访问https://www.example.com它去login页面 现在我从https://example.comlogin,redirect到仪表盘页面,这很好。 并再次当我访问https://example.com它redirect到仪表板页面。 现在问题,当我访问https // www.example.com它redirect到login页面。 这意味着我可以login两个会话 1) https://example.com 2) https://www.example.com在同一浏览器上。 ? 如何处理这个请。 我也使用httpredirect。 http.createServer(function (req, res) { res.writeHead(301, { "Location": "https://www." + req.headers['host'] + req.url }); res.end(); }).listen(80); var secureServer = https.createServer(sslOptions,app).listen(443, function(err,result){ console.log("Express server listening on port : 443"); console.log("Mode : " + app.get('mode')); }); 有什么build议么 ? 谢谢

如何捕获节点js / Java中的networking调用?

在Firefox的firebug插件中,有一个名为“Net”的选项卡,它捕获当我们从浏览器点击URL时所做的所有networking调用 我可以从代码中请求URL,但我正在设法捕获正在进行的networking调用,获取在networking调用中传递的请求参数 这可以使用NodeJS / Java来完成吗? 问题更新:是否可以在Java中使用?

HTTP代理(Node.js)不执行正确的SSLvalidation

我需要创build一个能够处理SSL证书validation的代理服务器。 我一直在使用Node.js的http-proxy库来处理sslvalidation。 我的问题是代理服务器没有做任何事情来validation客户端是否有适当的凭据。 我有一个代理服务器,我传递的ssl certRequire = true和rejectUnauthroized = true的服务器options 。 但是,客户端能够连接到没有证书/密钥的服务器,我不知道为什么。 这是我的代码: var options = { ssl: { key: fs.readFileSync('/Users/grantherman/Desktop/ssl_certificates/client1-key.pem'), cert: fs.readFileSync('/Users/grantherman/Desktop/ssl_certificates/client1-crt.pem'), requestCert: true, rejectUnauthorized: true } }; var proxy = new httpProxy.createProxyServer(options); http.createServer(function (req, res) { setTimeout(function () { proxy.web(req, res, { target: { host: 'localhost', port: 9002 } }); }, 200); }).listen(8002); //Server […]

定义节点函数的自定义callback

所以我有一个函数可以读取大约500个不同链接的一堆数据,并将这些数据保存到一个文件中,这个过程需要几秒钟的时间。 诀窍是,一旦抓取完成,我想开始操作这些数据,但是我不知道该怎么去做。 我知道,如果我正在做一个基本的http.get调用,我可以使用内置的callback函数,但这是我创build的自定义函数,所以当整个过程结束时如何做callback? 我读过,我可以定义一个callback传递给我的函数,并在我的函数结束调用,但似乎只是运行在一个不同的线程,而不是等待我的数据完成,然后再运行。 任何意见将apprecaited,希望这是有道理的。

Jupyterhub可configuration的Http代理问题

我一直在使用Jupyterhub的可configurationHttp代理,我一直在为代理处理客户端的ssl证书而不必使用命令行选项来添加必要的选项。 我的主要目标是我想要接受客户端请求到代理并将其证书信息添加到标题。 一旦在标题中,我将使用jupyterhub的身份validation器制作一个用户名。 我的问题是,当我使用proxy.on('proxyReq方法可用于http代理设置标题,我得到这个错误: [Error: Can't set headers after they are sent.] 我一直在查看所有的代码,看看正在写或发送的响应/请求,但我找不到它。 这里是ConfigurableProxy函数代码,如果需要,我可以给你更多的代码: function ConfigurableProxy (options) { var that = this; this.options = options || {}; this.trie = new trie.URLTrie(); this.auth_token = this.options.auth_token; this.includePrefix = options.includePrefix === undefined ? true : options.includePrefix; this.routes = {}; this.host_routing = this.options.host_routing; this.error_target = options.error_target; if (this.error_target && […]

从响应中获取单独的JSON

我和我的团队正在开发一个聊天应用:一个Android客户端和一个Web客户端。 最近,我们偶然发现了一个阻塞问题。 这里是如何: 所以networking和Android客户端(我将它们称为“客户端”)与Node.js服务器进行通信。 我们实际上正在login/注册部分。 这是我们到目前为止的一个例子: Android客户端 MainActivity.java Button loginButton = (Button) findViewById(R.id.loginButton); loginButton.setOnClickListener(new LoginListener()); private class LoginListener implements View.OnClickListener { @Override public void onClick(View v) { CustomAsyncTask manageSession = new CustomAsyncTask(); Map<String, String> params = new HashMap<>(); params.put("postURL", "/signin"); params.put("username", mUsername.getText().toString()); params.put("password", mPassword.getText().toString()); manageSession.execute(params); } } 简而言之,这段代码的作用是向/ signin路由发送参数化的POST请求。 Web客户端 <form …>…</form> <script type="text/javascript"> $('button').click(function(){ […]