Tag: http

你如何使用NodeJS在套接字上进行HTTP GET请求?

我正在使用硬件设备(我没有创build),它有一个标准的方式通过套接字连接与它通信。 设备通过联系我的服务器(NodeJS服务器)启动套接字连接。 我已经成功地build立了一个套接字连接… var socketServer = net.createServer() .listen(9999, function(){ console.log('SOCKET Listening at: http://localhost:9999'); }); socketServer.on('connection', function(sock) { console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort); console.log(sock); // Need to fire HTTP GET HERE }); 但是,我现在需要通过该套接字连接发送一个HTTP GET请求。 到目前为止,我可以找出如何做到这一点的唯一方法是手动 socket.write自己的GET。 我所希望的是一些像http这样的类,它允许你做类似… http.get(socket, function(res){ // Handler code }) 我几乎积极的问题是做我在NodeJS newb,所以我花了大约3-4小时淘金的计算器和谷歌的答案迄今没有成功。

GET请求在node.js不起作用

我有很大的麻烦,通过Node.js加载页面。 这是我的Node.js应用程序的代码,请注意,如果我尝试加载其他资源(如www.google.com),因此问题是特定于域名www.egopay.com它的作品: var http = require('http'); var options = { hostname: 'www.egopay.com', port: 80, path: '/', method: 'GET' }; var req = http.request(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function (chunk) { console.log('BODY: ' + chunk); }); }); req.on('error', function(e) { console.log('problem with request: ' + e.message); }); // […]

你如何在node.js中使用多个请求处理程序?

我来自龙卷风,你有一个requestHandler类,你匹配查询定位到正确的requestHandler。 你如何做node.js? 这样的事情? http=require ('http'); url=require('url') function case1(request,response){ … } function case2(request,response){ … } http.createServer(function(request, response) { var q=url.parse(request.url, true).query switch(true){ case /friend/.test(q): case1(request,response); return; case /foes/.test(q): case2(request,response); return; } }).listen(9999)

如何使用nodejs进行子HTTP请求

我想知道如何使用HTTP请求或使用nodejs的某些lib来使第二个请求享受第一个请求(外部URL)的会话。 下面是我如何解决我的问题与PHP和cURL,我在哪里访问主要的url,我把会议(cookies)作出第二个要求 $app->get('/parada/:termo', function ($termo) use ($app) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://olhovivo.sptrans.com.br/'); curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $store = curl_exec ($ch); curl_setopt($ch, CURLOPT_URL, 'http://olhovivo.sptrans.com.br/v0/Parada/Buscar?termosBusca='.$termo); $content = curl_exec ($ch); echo $content; curl_close ($ch); }); 我没有代码,因为所有的例子,我已经看到了http.get作出申请,并closures连接。 var http = require('http'); var options = { host: 'example.com', port: 80, path: '/foo.html' }; http.get(options, […]

将文件附加到FormData不能在angularjs中工作

我使用angularjs在单个请求中上传文件和json对象到nodejs服务器。 然后我得到这个萤火虫console.log: —————————–8791641017658 Content-Disposition: form-data; name="model" {"phone":"asasasa","description":"121212112","payment":"2121212121","shipping":"121221221","imageurl":"21212112","price":"212112212","status":"new"} —————————–8791641017658– 所以,name =“file”不会出现在这里。 和nodejs服务器中的console.log(req.files) // print out "{}" 请帮忙,谢谢! $scope.files = []; $scope.$on("fileSelected", function (event, args) { $scope.$apply(function () { //add the file object to the scope's files collection $scope.files.push(args.file); console.log($scope.files); }); }); $scope.create = function() { $scope.seller_submit = { phone: this.phone, description: this.description, payment: this.payment, shipping: this.shipping, […]

尝试使用节点发出'POST'请求

我正在尝试使用请求或HTTP / HTTPS(或任何其他的,如果它不可能与这两个)node.js中执行以下cUrl请求, curl -k -3 -X POST https://somedomain.com/rest/ \ -H "customeHeader: customeHeader" \ // customer header -d '{ "email" : "foo@bar.com", "password" : "yourpassword" }' // data to post. 这是我到目前为止: var options = { "hostname": "https://somedomain.com/rest/", "method": 'POST', "headers" : { "customeHeader" : "customeHeader" }, "secureProtocol" : "SSLv3_method", "rejectUnauthorized" : false }; var req […]

Node.js Cluster + Express总是调用同一个worker

我正在尝试使用群集模块来处理与Express同时多个http请求。 通过下面的代码,我可以产生多个工作人员,并让他们都在同一个端口上进行监听。 大的for循环是模拟Web服务器上的重负载。 我想看到的是,如果工作人员在第二个请求进入时正忙于处理一个http请求,则会调用另一个worker并处理该第二个请求。 相反,当我尝试使用curl发出多个请求时,所有请求都由一个工作人员顺序处理; 即使他们已经分叉,也没有其他的工人被调用过。 难道是我使用Express不正确? 提前致谢! var cluster = require('cluster'); if (cluster.isMaster) { var cpuCount = require('os').cpus().length; for (var i = 0; i < cpuCount; i += 1) { cluster.fork(); } } else { var http = require('http'), app = require('express')(); http.createServer(app).listen(31415, function () { console.log(process.pid + " listening on 31415"); }); app.get('/', […]

Socket使用Node HTTP请求从GitHub API挂起错误

我正在提出以下要求: var options = { host: "api.github.com", port: 443, path: "/repos/myusername/myreponame/issues", headers: {Authorization: "Basic " + new Buffer(username + ":" + password).toString("base64")} }; var request = http.get(options, function(response) { response.on("data", function(data) { console.log("data"); }); }); request.on("error", function(error) { console.log(error); }); 这会导致一个错误: { [Error: socket hang up] code: 'ECONNRESET' } 任何想法为什么?

pipe道图像与在请求中发送node.js中的callback主体

我正在使用node.js 0.10.33和请求2.51.0。 在下面的例子中,我构build了一个简单的Web服务器,它使用请求代理图像。 有两条路线设置代理相同的图像.. / pipe只需将原始请求传递给响应 / callback等待请求callback,并将响应头和主体发送给响应。 pipe道示例按预期方式工作,但callback路由不会呈现图像。 标题和主体看起来是一样的。 callback路线如何导致图像中断? 以下是示例代码: var http = require('http'); var request = require('request'); var imgUrl = 'https://developer.salesforce.com/forums/profilephoto/729F00000005O41/T'; var server = http.createServer(function(req, res) { if(req.url === '/pipe') { // normal pipe works request.get(imgUrl).pipe(res); } else if(req.url === '/callback') { // callback example doesn't request.get(imgUrl, function(err, resp, body) { if(err) […]

节点HTTP服务器的最高性能?

我正在运行一个testing,试图从节点HTTP服务器获得最大的传输速度。 这是一个简单的服务器。 在我的testing中,我有50K的虚拟客户端build立与服务器的永久连接(我之前运行ulimit -n 99999)。 然后,在另一个事件,一个HTTP连接到不同的端口,服务器发送一个消息到每个虚拟客户端。 最后,所有客户端都收到相应的消息。 在我的testing中发送所有消息需要几分钟。 有没有任何build议可以帮助我改进这些测量,以便我可以在几秒钟内发送5万条消息而不是几分钟? 服务器在m1.medium AWS实例中运行。 这个想法是用相同的平台来提高性能。 复制服务器代码: var http = require("http"); var connectionResponse = []; var connectionIndex = 0; http.createServer(function(request, response) { console.log("Received connection " + connectionIndex); response.setTimeout(1200000, function() { console.log("Socket timeout"); }); connectionResponse[connectionIndex] = response; connectionIndex++; }).listen(8888); http.createServer(function(request, response) { console.log("8887 connected – Will respond"); response.writeHead(200, {"Content-Type": "text/plain"}); […]